解决Mysql中文乱码:

以基于Servlet+Mysql构建网站为例,网页/数据库出现中文乱码的原因:数据在流动的任意节点处,编码不一致,出现乱码。

数据流动的任意节点,分为两块,分别是Web和数据库:

  • Web:网页、Jsp页面、Java代码文件、Tomcat读取的web.xml
  • 数据库:Mysql的client/server/connection以及数据库/表/字段

要使乱码不出现,须使任意的数据节点编码一致,在此之前先了解以下知识:


在学习上面关于字符集以及编码的知识后,下面我们就谈谈如何解决Mysql中文乱码(Web方面的可以自行Google,大同小异)。

1.将mysql-version/support-files/my-default.cnf 复制一份到 /etc 下面,并改名为my.cnf (Window下叫my.ini)

2.「Mysql的client/server/connection以及数据库/表/字段」编码设置为utf8,添加以下内容至my.cnf中

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci  
init-connect='SET NAMES utf8'  
character-set-server = utf8  

4.重启Mysql,进入Mysql,输入show variables like 'char%’;

5.在保证所输入数据库的内容格式为utf8的情况下,一般可以解决Mysql中文乱码。

更多关于Mysql设置utf8,以及修改my.cnf的内容参见Stack Overflow上的讨论。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容