您的位置:首页 > 运维架构 > Tomcat

数据库中文乱码解决方案总结,tomcat+mysql+hibernate

2016-07-15 10:35 676 查看
我的开发环境是eclipse+tomcat+mysql+hibernate,数据落地时发现中文都成了?,网上一搜,原因有很多,这边总结下,大家碰到可以按着一一排查:

一般编码都会常用UTF-8编码

1. 数据库编码

查看mysql数据的的编码,确实是utf-8



如果不是,将数据编码格式保存为utf-8

设置默认编码为utf8:

set names utf8;

设置数据库db_name默认为utf8:

[sql] view
plain copy

ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

设置表tb_name默认编码为utf8:

[sql] view
plain copy

ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

2. 查看eclipse编辑器用的是UTF-8的编码



3. 查看project用的是UTF-8编码



4. 查看html中选的是utf编码

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

5. 查看ORM框架用的是utf-8编码

我用的是hibernate框架,查看hibernate.cfg.xml文件

<property name="connection.characterEncoding">UTF-8</property>

6. 查看tomcat的编码



找到tomcat下的server.xml文件

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

改成

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" URIEncoding="UTF-8"/>

如果是在eclipse中运行tomcat,重启tomcat还不起作用,要把项目中server删了重新加载,才起作用



7. 数据库连接语句

db.driverClassName=com.mysql.jdbc.Driver

db.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8

db.username=root

db.password=123456

这么多检查排查下来终于解决了,感谢大家的帮助!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息