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

来源:互联网 发布:java 求互质数 编辑:程序博客网 时间:2024/05/05 10:09

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


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


1. 数据库编码

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


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

设置默认编码为utf8:
set names utf8;
设置数据库db_name默认为utf8:

[sql] view plain copy
  1. ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  
设置表tb_name默认编码为utf8:
[sql] view plain copy
  1. 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


这么多检查排查下来终于解决了,感谢大家的帮助!!!

0 0
原创粉丝点击