mysql乱码问题的解决方案

  • A+
所属分类:MySQL
高性能企业级服务器首台5折

问题现象

 

问题原因

系统默认编码是gbk,而mysql客户端提供的编码方式是utf8,两种编码不一致导致的,查看当前mysql的编码:

show variables like 'character%';

如下图:

 

解决方法

将mysql提供的客户端编码变为gbk

设置客户端编码:


1
<span class="hljs-keyword">set</span> character_set_client <span class="hljs-comment">= gbk</span>;

此时可以插入中文数据了,但是在


1
<span class="hljs-keyword">select</span> * <span class="hljs-keyword">from</span> <span class="hljs-keyword">user</span>

时发现刚才插入的中文数据乱码

原因是:统默认编码是gbk,而mysql结果集的编码方式是utf8,两种编码不一致导致的

解决方案是将mysql结果集编码设置成gbk

设置结果集的编码:


1
<span class="hljs-keyword">set</span> character_set_results <span class="hljs-comment">= gbk</span>;

再次查询数据库

注意:上述操作只针对当前客户端有效

彻底修改编码的操作:在安装文件中寻找my.ini文件 找到default-character-set=utf8一行

将utf8改成gbk,意味着和客户端相关的编码全部给程gbk

再次查询编码集:

显示正常。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: