问题描述
提示:用的mysql5.x版本:
例如:在新增数据的时候,数据库本应该保存中文的字段出现了乱码???:
原因分析:
提示:首先想到的是mysql的字符集设置,以及建表语句的字符集设置。但当我把字符集都改成UTF-8xxx之后,乱码还是存在。甚至在百度之后,改了mysql.ini文件里的字符集,再重启数据库。依然没用。
解决方案:
提示:修改数据库连接,在末尾加上了&characterEncoding=utf8,这下问题奇迹般的被修复了。
url: jdbc:mysql://localhost:3306/user?useUnicode=true&max_allowed_packet=16M&allowMultiQueries=true&useSSL=false&useLocalSessionState=true&characterEncoding=utf8
解释:
如果设置了characterEncoding字符集,那么客户端发送时候采用的字符集、mysql服务端接收采用的字符集、mysql结果返回的编码字符集,三者都采用characterEncoding字符集。
如果没有设置characterEncoding字符集,那么三个字符集取的是mysql配置文件里的字符集(注意:有的是mysql.ini,有的是my.cnf)。
[mysqld]
character-set-server=utf8