今天帮同学解决了一个中文乱码问题,现在做一下记录。
他的问题是将中文插入数据库乱码,前台数据传到后台不乱码。他用的是mysql.jdbc.driver。
这时候首先考虑的是数据库的配置是否有问题,查看了一下navicat数据库的配置,发现不是utf-8,于是将字符集改成“utf8 -- UTF-8 Unicode”,排序规则改为“utf8_general_ci”。把项目的编码格式改为utf-8。测试了一下,还是乱码。
突然发现他是Hibernate项目,就把hibernate.cfg.xml文件的配置改了一下,就成功了。代码如下:
<property name="hibernate.connection.url">jdbc:mysql://localhost/数据库名称?useUnicode=true&characterEncoding=utf8 </property>
红色的是要添加的。