日期:2014-05-16 浏览次数:20468 次
参考资料:
1、http://blog.163.com/jackie_howe/blog/static/199491347201210232629629/
2、http://www.linuxidc.com/Linux/2011-10/44357.htm
3、http://www.linuxidc.com/Linux/2012-02/55270.htm
4、http://www.dewen.org/q/706/Mysql%E4%B8%ADcharacter_set_server%E5%92%8Ccharacter_set_database%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F
5、http://www.cnblogs.com/flyingcloude/archive/2012/09/09/2677569.html
?
解决方法:
1、修改mysql配置
进入mysql命令行模式,show variables like 'character%';显示所有字符集名称
其中除了character_set_filesystem=binary character_sets_dir= /usr/share/mysql/charsets/(依据个人配置路径而定)以外,其他都改成统一的编码,如utf8。
A)找到my.cnf(默认在/etc/mysql/my.cnf)
B)在[client]下加入default-character-set=utf8
C)在[mysqld]下加入character_set_server=utf8
D)保存退出,重启服务service mysql restart
E)重启成功后,进入myslq命令行,show variables like 'character%';查看字符集名称是否统一,如下图:
?
+--------------------------+----------------------------+
| Variable_name??????????? | Value????????????????????? |
+--------------------------+----------------------------+
| character_set_client???? | utf8?????????????????????? |
| character_set_connection | utf8?????????????????????? |
| character_set_database?? | utf8?????????????????????? |
| character_set_filesystem | binary???????????????????? |
| character_set_results??? | utf8?????????????????????? |
| character_set_server???? | utf8?????????????????????? |
| character_set_system???? | utf8?????????????????????? |
| character_sets_dir?????? | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
注:
服务器字符集 (character_set_server)
库字符集 (character_set_database)
数据库系统(character_system)
character_set_server: 服务器安装时指定的默认字符集设定。
character_set_database: 数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。
character_system: 数据库系统使用的字符集设定。
?
2、链接字符串加入参数
jdbc:mysql://IP:3306/databasename?useUnicode=true&characterEncoding=utf8
如果是放置在XML的配置文件中,修改为
<![CDATA[jdbc:mysql://10.83.211.150:3306/etpsp?useUnicode=true&characterEncoding=utf8]]>
因为里面有特殊字符
至此乱码解决
?
3、之前的数据乱码貌似没有办法解决了,新建的数据库是么有问题的