`

解决JSP+TOMCAT5+Mysql5中文乱码问题注意事项

阅读更多
我以前遇到tomcat+mysql5中文乱码时都是去网上找解决办法,解决了后就不去深究原因,现在我总结一下:

  1:关于

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

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

写法的要注意的地方,& 是 & 的转义符号,两种写法都是正确的,只是下面的写法用在xml配置文件中,而上面的用在java代码中。

2.查看客户端发送给服务器的SQL使用什么编码

如果你的jsp或者java代码发送给mysql的中文是乱码,你可以运行一下下面的代码,看看客户端发送给服务器的SQL使用什么编码;

private static String ClassName = "org.gjt.mm.mysql.Driver";
private static String Url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";
private static String UserName = "root";
private static String PassWord = "";

Connection con = null;
 try {
     Class.forName(ClassName).newInstance();
     con = DriverManager.getConnection(Url, UserName, PassWord);
 } catch (Exception e) {
     e.printStackTrace();
 }
 
ResultSet rs = con.createStatement().executeQuery("SHOW VARIABLES LIKE 'character_set_%'");
   while(rs.next()){
      System.out.println(rs.getString(1) +","+ rs.getString(2));
   }
rs.close();
con.close();


没有配置characterEncoding=utf-8之前,我使用的是 Url = "jdbc:mysql://localhost:3306/test;
这样的配置。结果用select()方法查询结果如下:

character_set_client,latin1
character_set_connection,latin1
character_set_database,utf8
character_set_filesystem,binary
character_set_results,
character_set_server,latin1
character_set_system,utf8
character_sets_dir,/usr/local/mysql-standard-5.0.27-Linux-i686/share/mysql/charsets/


注意第一行就可以了,可见使用的是latin1。
而latin1本身就无法表示汉字,经过这个编码打包的SQL语句发给Server,Server也用Latin1解析也无法还原。
所以,我总是写乱码到DB。
而配置了配置characterEncoding=utf-8之后,
执行select(),结果:

character_set_client,utf8
character_set_connection,utf8
character_set_database,utf8
character_set_filesystem,binary
character_set_results,
character_set_server,latin1
character_set_system,utf8
character_sets_dir,/usr/local/mysql-standard-5.0.27-linux-i686/share/mysql/charsets/
第一行为utf-8,SQL将用UTF8打包给Server,Server也用Client配置的UTF8
解析。


部分类容来自 - http://www.master8.czm.cn/data/2007/0308/article_5458.htm

分享到:
评论

相关推荐

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

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

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

    在进行MySQL、JSP以及SSH(Struts、Spring、Hibernate)框架集成的网站开发时,中文乱码问题是一个常见的困扰。这通常是由于编码格式不一致、设置不当或处理方式错误导致的。以下是一些关键的知识点,可以帮助你解决...

    在线考试系统平台设计,框架: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' 图片无法加载是因为...

    解决Tomcat+MySql+Struts的中文问题

    总结来说,解决Tomcat+MySql+Struts的中文问题,主要包括以下几个步骤: 1. 确保HTML/JSP页面使用支持中文的charset,如GBK或UTF-8。 2. 使用过滤器处理POST请求,设置请求的字符编码。 3. GET请求一般无需特殊处理...

    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' 图片无法加载是因为...

    JSP乱码 N种解决方案

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

    解决Linux下Tomcat向MySQL插入数据中文乱码问题

    这里我们将深入探讨如何解决Linux环境下Tomcat服务器向MySQL数据库插入中文数据时出现乱码的问题。 首先,我们要了解这个问题的背景。在Windows上开发的项目,可能在本地环境使用了某种特定的字符编码(如UTF-8),...

    Jsp乱码解决方案 word文档

    本文将深入探讨JSP中出现乱码的原因,并提供一系列解决方案,帮助你解决这一常见问题。 **乱码产生的原因** 1. **字符编码不一致**:JSP文件本身、HTTP请求头、响应头以及数据库存储的字符编码可能存在不一致,...

    java开发的家居电子商城Jsp+Servlet+Druid+JDBC-Template+JQuery+Js +EL/JSTL

    项目亲自测试,绝对可以正常运行 ...数据库:MySQL_5 开发工具:IDEA或eclipse 项目修复bug 1、修复保存成功后提示信息乱码的问题 2、修复商品管理时产品图片不能上传功能的问题 3、修复评价模块的问题等等

    struts2的中文乱码问题解决

    ### Struts2中文乱码问题解决方案 在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取...

    jsp中常见的乱码问题

    以下是一些关于如何解决JSP中中文乱码问题的知识点: 1. **请求编码**:当用户通过表单提交包含中文字符的数据时,如果服务器端没有正确设置请求编码,就会出现乱码。在JSP中,可以使用`request.setCharacter...

    公告管理系统(JSP+Struts)(Java EE项目案例)

    如果上面5步都没问题,你就不存在中文乱码问题。 ====================================================== 数据库使用的是MySQL,其版本为5.0.45 版本。 数据库的用户名及密码均为root。 使用的时候,请参考附件...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    全书一共被压缩为5个rar,这是第二个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    全书一共被压缩为5个rar,这是第五个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JSP网站开发典型模块与实例精讲

     1.2.1 JSP运行最佳环境Tomcat+MySQL  1.2.2 高效开发JSP的最佳搭配工具Eclipse+MyEclipse  1.2.3 开发JSP经典模式MVC  1.3 JSP开发运行环境搭建  1.3.1 安装JDK  1.3.2 安装Tomcat Web服务器  1.3.3 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    全书一共被压缩为5个rar,这是第四个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    全书一共被压缩为5个rar,这是第三个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

Global site tag (gtag.js) - Google Analytics