我以前遇到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环境中的乱码问题,你需要检查并设置以上提到的所有环节的编码,确保它们统一为UTF-8。通过这种方法,可以有效地避免乱码的出现,从而提供良好的用户体验。在...
在进行MySQL、JSP以及SSH(Struts、Spring、Hibernate)框架集成的网站开发时,中文乱码问题是一个常见的困扰。这通常是由于编码格式不一致、设置不当或处理方式错误导致的。以下是一些关键的知识点,可以帮助你解决...
后端:jsp + servlet + java + mysql 开发工具:ideaIC-2022.3.2.exe 或者eclipse都行 + jdk1.8 + Apache Tomcat/8.5.78 select version() 获取数据库版本'5.6.00' 图片无法加载是因为拦截器,修改拦截器,或者删除...
后端: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的中文问题,主要包括以下几个步骤: 1. 确保HTML/JSP页面使用支持中文的charset,如GBK或UTF-8。 2. 使用过滤器处理POST请求,设置请求的字符编码。 3. GET请求一般无需特殊处理...
后端: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' 图片无法加载是因为...
在开发Java Web应用程序时,JSP(JavaServer Pages)页面经常遇到字符编码问题,导致页面显示乱码。本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码...
这里我们将深入探讨如何解决Linux环境下Tomcat服务器向MySQL数据库插入中文数据时出现乱码的问题。 首先,我们要了解这个问题的背景。在Windows上开发的项目,可能在本地环境使用了某种特定的字符编码(如UTF-8),...
本文将深入探讨JSP中出现乱码的原因,并提供一系列解决方案,帮助你解决这一常见问题。 **乱码产生的原因** 1. **字符编码不一致**:JSP文件本身、HTTP请求头、响应头以及数据库存储的字符编码可能存在不一致,...
项目亲自测试,绝对可以正常运行 ...数据库:MySQL_5 开发工具:IDEA或eclipse 项目修复bug 1、修复保存成功后提示信息乱码的问题 2、修复商品管理时产品图片不能上传功能的问题 3、修复评价模块的问题等等
### Struts2中文乱码问题解决方案 在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取...
以下是一些关于如何解决JSP中中文乱码问题的知识点: 1. **请求编码**:当用户通过表单提交包含中文字符的数据时,如果服务器端没有正确设置请求编码,就会出现乱码。在JSP中,可以使用`request.setCharacter...
如果上面5步都没问题,你就不存在中文乱码问题。 ====================================================== 数据库使用的是MySQL,其版本为5.0.45 版本。 数据库的用户名及密码均为root。 使用的时候,请参考附件...
全书一共被压缩为5个rar,这是第二个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...
全书一共被压缩为5个rar,这是第五个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...
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 ...
全书一共被压缩为5个rar,这是第四个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...
全书一共被压缩为5个rar,这是第三个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...