乱码问题是经常遇到的问题,也是比较头疼的问题,网上资料也非常多,最近在项目实施时也出现过这个问题,在此记录下解决方式。
先描述下我遇到的问题,开发环境为Eclipse,编码格式为UTF-8,WEB服务器为Tomcat,编码格式为UTF-8,数据库采用Mysql,编码格式如下:
数据库中表与字段的编码全部为utf8,当向数据库中保存中文时,会出现乱码问题,经过分析得知,出现乱码的原因为character_set_server与character_set_database的编码为latin1所致,解决方法为将character_set_server与character_set_database的编码格式设置为utf8。
解决此问题时,按照网上所说的修改my.ini文件的client和mysqld中的default_character_set为utf8,default_character_set=utf8;重启mysql服务,查看结果还是没有变化,此方法行不通。
继续搜索资料,终于找到了解决了问题,需要运行一个可执行文件:%Mysql_HOME%\bin\MySQLInstanceConfig.exe
character_set_database:库字符集,数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置
character_set_server:服务器字符集,服务器安装时指定的默认的字符集
优先级顺序为:服务器级别>数据库级别>表级别>列级别