`
stchou
  • 浏览: 205093 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Web项目 Jsp+Tomcat+Mysql乱码解决终极篇

阅读更多


 Web项目 
Jsp+Tomcat+Mysql乱码解决终极篇

写在之前:

   编码出现错误了在web开发的情况下是常常出现的问题。特别是接触了Jsp以来,所学的一切东西,TomcatMysql每样东西都产生了乱码。经过了几个web项目的开发,我总结出来了,一套系统的解决方案,仅供大家参考学习。

 

如果你已经是一位高手,或者对乱码有了深入的了解,就请放过本文吧,小弟设计web不久,所写的文章必定会有不足,指出就好,小弟脆弱的心灵经不起如潮涌般的狂踩。谢谢。

----------------------------------------------------------------------------------------

 

乱码由来:

据江湖盛行的传说,文字的编码分为很多的种类,unicodeUtf-8GBKGB2312等等编码。各个国家,各个地方的使用文字不同一,所以编码不一样。当然不一样编码,他们所编码的格式也就不一样。当使用一种编码格式去对文字编码,再用另一种格式对文字进行解码,所得的结果就变成了乱码。

--------------------------------------------------------------------------------------------

 

 

有人传言说,在JspTomcatMysql上统一编码就可以解决问题了。

此话是没有错的,但是能真正的的统一编码又有几个。

--------------------------------------------------------------------------------------------

 

 

乱码出现不用慌:

   三个问题问自己

①写了过滤器没有?

Jsp头部的编码与MySQL里的编码一样吗?

JspHtml等文件的存储格式有没有改动(默认是unicode,一般不会改)?

 

以上三个问题一般有过web学习的同学都会注意了。如果没有做,那就先完成以上步骤再向下看。

 

但是,以上都做了还出现乱码怎么办?  这个就是本文的重点了。

-----------------------------------------------------------------------------

 

 

以下方法我称为(定位法)

定位法——主要是看编码出错时有哪里引起的,哪里出错就在哪里修改。

 

需要在以下几个地方打印或查看

①网页显示页面

②处理动作的action

③数据库操作的SQL语句

④数据库中的内容

 

以下我们统一用一个UTF-8编码作为例子

1、如果一个提交信息页面,输入中文,然后在②处理动作的action中所打印的就出现乱码了。

获取表单提交的数据时的中文乱码问题

原因:由于TomactJ2EE实现对表单提交,即以post方式提交的参数采用默认的ISO-8859-1来处理,所以中文就会出现乱码

解决:检查filter设置是否错误,或者没有在xml中配置生效。

②页面之间传中文参数问题

在页面之间传中文参数,需要在tomact的安装目录的/conf/server.xml文件中找到Connector,加上URIEncoding="utf-8",如下

<Connector

port="8080"               maxHttpHeaderSize="8192"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" redirectPort="8443" acceptCount="100"

               connectionTimeout="20000" disableUploadTimeout="true"  URIEncoding="utf-8"/>

 

 

  

 

 

2、如果一个页面提交信息,①网页显示页面②处理动作的action显示和打印都的都是正常的,而③数原因:数据库安装的时候设计的默认连接不是UTF-8

据库操作的SQL语句中打印出现乱码。如:

insert into t_userinfo(user_num,user_password,user_type,user_name,user_comments) values ('20090840122','123456',0,'???','???')


解决:连接数据库的时候的语句,加上一句?useUnicode=true&characterEncoding=UTF-8"

test数据库连接为:

   "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";

 

 

 

 

 

3、如果一个页面提交信息,之前的都没有出现乱码,却在④数据库中的内容显示的为乱码,或者,直接报错,无法直接添加信息。

如:



 

 

只要出现中文的地方都变为 了  ???

原因:数据库表的编码格式,数据库字段的编码格式,与web项目的编码格式不统一。

即如图所示地方没设置好:


 


 

 

 

解决:修改一样即可。

 

 

 

 

 

 

4、一个读取显示页面,如果④数据库中的内容显示是正常的,但是①网页显示页面②处理动作的action,打印显示却是乱码。

原因:信息存储不存在乱码,乱码处于传输和显示上。

解决:检查filter设置的正确与否,检查JSP页面的默认编码是否与数据库统一。

 

 

 

 

 

 

5、一个读取显示页面,之前的都没有错,只有①网页显示页面是乱码。

原因:信息存储不存在乱码,乱码处于显示上。

解决:检查JSP页面的默认编码是否与数据库统一。

检查,

   Jsp页面头部加上:<%@ page contentType="text/html;charset=UTF-8" %>

   head部分加上:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

这两句话是否存在,存在是否错误。

--------------------------------------------------------------------------------------------

 

 

 

小结:

以上这些步骤能很好的应对我们WEB项目上常出现的各种乱码问题,“定位法”是本人所想,个人感觉,在查找编码错误的时候,具有“快”、“狠”、“准”的效果,或许有少许不合理,或许能对大家多少有点帮助。书写本文,时间多少有点匆忙如有错误,就请指出,相互学习,相互进步,谢谢。

 

<!--EndFragment-->

  • 大小: 7.8 KB
  • 大小: 47.5 KB
  • 大小: 64 KB
28
2
分享到:
评论
8 楼 stchou 2011-06-09  
MyEyeOfJava 写道
mark once

Thank you ~!
7 楼 MyEyeOfJava 2011-06-09  
mark once
6 楼 lyw985 2011-06-08  
5 楼 左手边 2011-06-08  
学习了
4 楼 stchou 2011-06-07  
小羊fc 写道
  感激lz 收下了

希望对你有用,  
3 楼 小羊fc 2011-06-05  
  感激lz 收下了
2 楼 earring 2011-06-02  
           感觉不错,借鉴了。
1 楼 Technoboy 2011-05-28  
jsp : 指定页面charset
tomcat: 添加URIEncoding参数,指定解码字符集,默认ISO-8859-1
mysql: 从列,表,数据库,连接,返回值,结果集,都有字符集。最简单方式在windows下,my.ini文件,指定Client和Server
default-character-set

相关推荐

    Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决篇

    在本篇文章中,我们将深入探讨如何解决Struts + Hibernate + MyEclipse + Tomcat + MySQL环境中出现的乱码问题。该问题通常出现在处理中文字符时,由于编码设置不当导致中文显示为乱码或无法正常读取。为了确保系统...

    Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决

    总之,要解决Struts+Hibernate+MyEclipse+Tomcat+MySQL环境中的乱码问题,你需要检查并设置以上提到的所有环节的编码,确保它们统一为UTF-8。通过这种方法,可以有效地避免乱码的出现,从而提供良好的用户体验。在...

    mysql+jsp+SSH网站开发中文乱码解决方案

    通过以上步骤,可以基本解决MySQL、JSP和SSH框架集成网站开发中的中文乱码问题。在实际开发过程中,要根据项目的具体情况进行调整和测试,确保每个环节都正确处理了字符编码。如果你遇到了特定的问题,可以进一步...

    java+jsp+mysql开发 web项目处理中文乱码问题

    处理 Java+jsp+mysql 开发 web 项目中文乱码问题 在 Java+jsp+mysql 开发 web 项目中,中文乱码问题是一个常见的...通过以上四个方面的解决方法,我们可以完全解决 Java+jsp+mysql 开发 web 项目中的中文乱码问题。

    jsp 乱码详解(jsp,mysql,tomcat)

    jsp 乱码详解(jsp,mysql,tomcat) 基本涵盖所有的乱码解决方法。使用的utf-8作为例子

    在线考试系统平台设计,框架:html + js + css + jsp + servlet + java + mysql

    后端:jsp + servlet + java + mysql 开发工具:ideaIC-2022.3.2.exe 或者eclipse都行 + jdk1.8 + Apache Tomcat/8.5.78 select version() 获取数据库版本'5.6.00' 图片无法加载是因为拦截器,修改拦截器,或者删除...

    网络考试系统平台设计,框架:html + js + css + jsp + servlet + java + mysql

    后端:jsp + servlet + java + mysql 开发工具:ideaIC-2022.3.2.exe 或者eclipse都行 + jdk1.8 + Apache Tomcat/8.5.78 http://localhost:8080/exam/ select version() 获取数据库版本'5.6.00' 图片无法加载是因为...

    jsp+mysql学生信息管理系统

    使用最新技术开发:eclipse2022,支持java:17or8,支持mysql:8.0or5.7or.56,tomcat:10 普通用户 具有按学号学好查询学生资料功能,普通用户必须先注册,然后登陆、查询。 管理员 可以对学生进行添加学生资料、删除...

    java web在线考试系统,框架:html + js + css + jsp + servlet

    后端:jsp + servlet + java + mysql 开发工具:ideaIC-2022.3.2.exe 或者eclipse都行 + jdk1.8 + Apache Tomcat/8.5.78 http://localhost:8080/exam/ select version() 获取数据库版本'5.6.00' 图片无法加载是因为...

    解决Tomcat中文乱码

    ### 解决Tomcat中文乱码问题 在使用Tomcat服务器部署Web应用时,经常会遇到中文乱码的问题。本文将详细探讨这一现象的原因,并提供一种...通过上述方法,可以有效地解决Tomcat中文乱码的问题,提高Web应用的用户体验。

    基于jsp+servlet+mysql人事工资人力资源管理系统+源代码+文档说明+数据库.zip

    如果运行后添加信息乱码,请设置项目GBK编码,配置Tomcat服务器GBK编码,也可能js需要设置GBK编码。 运行环境jdk1.8jdk1.9 IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat8.x9.x -------- 不懂运行,...

    彻底解决 Tomcat 5 下文字乱码问题 - JSP日志 - ※一路风尘※

    本文将深入探讨如何解决Tomcat 5中的文字乱码问题,尤其是针对JSP日志的处理。 首先,我们要理解乱码问题的根源。乱码通常发生在数据的编码、传输和解码过程中,当不同的环节使用不一致的字符集时,就可能出现乱码...

    基于jsp+servlet+mysql人事工资人力资源管理系统

    如果运行后添加信息乱码,请设置项目GBK编码,配置Tomcat服务器GBK编码,也可能js需要设置GBK编码。 ## 运行环境:jdk1.8/jdk1.9 ## IDE环境: Eclipse,Myeclipse,IDEA都可以 ## tomcat环境: Tomcat8.x/9.x

    Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作1

    运行项目后,用户可以通过Web界面看到火车车次的查询结果,这可能是通过JSP页面展示的。每个车次的信息(如车次ID、出发地、目的地等)会被传递到JSP页面上,并以表格形式呈现。 值得注意的是,虽然这个示例提供了...

    基于jsp+servlet+mysql人事工资人力资源管理系统设计

    如果运行后添加信息乱码,请设置项目GBK编码,配置Tomcat服务器GBK编码,也可能js需要设置GBK编码。 ## 运行环境:jdk1.8/jdk1.9 ## IDE环境: Eclipse,Myeclipse,IDEA都可以 ## tomcat环境: Tomcat8.x/9.x

    Java Web开发(JSP、Servlet)乱码终极解决方案.txt

    本篇将详细解析如何在Java Web项目中彻底解决乱码问题,确保数据在各个环节都能正确地显示和处理。 ### 一、项目配置 #### 1. 开发工具编码设置 - **Eclipse**: 在Eclipse中,通过`Preferences -&gt; General -&gt; ...

    jsp版鲤鱼论坛mysql4.0+tomcat.rar

    演示地址 http://www.liyunet.com/bbs/index.jsp&lt;br&gt;如果出现乱码(JAVA的特权),请修改/WEB-INF/systemconfig.properties文件的 #####################################################$ ######编码转化...

    JSP乱码 N种解决方案

    在开发Java Web应用程序时,JSP(JavaServer Pages)页面经常遇到字符编码问题,导致页面显示乱码。本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码...

Global site tag (gtag.js) - Google Analytics