今天写代码迁移数据,由于数据库不同,一个是db2,一个是mysql。
debug的时候,发现db2 这边是中文,但是到了mysql那边就变成了好多问号,甚是苦恼。
联系那边说是数据库编码不能改,改了就全部数据都按这个来了,于是百度了一下。
就在配置数据库的文件中将数据库的那一行改成了:
<property name="url">
<value>jdbc:mysql://xx.xx.xx.xxx:3306?useUnicode=true&characterEncoding=UTF-8</value>
</property>
这样就可以在数据库里面看到不是乱码了。但是运行的时候,出现了
The reference to entity “characterEncoding” must end with the ‘;’ delimiter.
这样的错误,也就是说,加的这个后缀在配置文件里没有被识别出来(虽然打眼一看点错没有),
这个时候我们需要把“&” 改成 “&;”
也就是说 ,改成这样:
<property name="url">
<value>jdbc:mysql://xx.xx.xx.xxx:3306?useUnicode=true&characterEncoding=UTF-8</value>
</property>
?useUnicode=true&characterEncoding=UTF-8
就可以了 ,这样数据库里就不是乱码了。