Java程序存入数据库中文乱码
-
问题描述:代码迁移后,ssm框架在插入数据到mysql数据库时出现中文乱码,SQL语句查询条件中有中文字符会查不出数据。代码中的编码配置没有问题,因为该项目代码在之前的pc使用过,没有问题。现在换了数据库,数据库配置也做了修改,统一使用
utf-8
,但还是乱码。 -
解决方法:在数据库的配置的url后加
useUnicode=true&characterEncoding=UTF-8
参数 -
用xml配置时,
&
要使用转义字符&
-
添加的作用是指定字符的编码、解码格式。
例如:MySQL数据库用的是
GBK
编码,而项目中用的是utf-8
编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8
,那么作用有如下两个方面:存数据时:
数据库在存放项目数据的时候会先用utf-8
格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK
编码存放到数据库中。取数据时:
在从数据库中取数据的时候,数据库会先将数据库中的数据按
GBK
格式解码成字节码,然后再将解码后的字节码重新按utf-8
格式编码数据,最后再将数据返回给客户端。