欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

网上一次MySQL中文乱码问题的处理过程_MySQL

程序员文章站 2022-06-11 20:53:28
...
bitsCN.com

网上一次MySQL中文乱码问题的处理过程

1 企鹅上朋友问我MySQL查询出来的数据在工具里面出来的是乱码,如图所示:网上一次MySQL中文乱码问题的处理过程_MySQL

2 让他去检查mysql服务器的字符集设置,可以看到都是utf8正常的,如图所示:

网上一次MySQL中文乱码问题的处理过程_MySQL

3 我猜测一定是数据录入的时候出的问题,朋友说是通过source方式录入的,然后我去linux服务器上面检查导入的数据文件:

more /opt/soft/20130821ajtdrz_1.sql: 如图所示:

网上一次MySQL中文乱码问题的处理过程_MySQL

4 然后我让他把文件下载从服务器下载下来在本地看看,他下载下来之后,显示如图正常:

网上一次MySQL中文乱码问题的处理过程_MySQL

5,奇怪了,而且 而且网站前台显示也是好的,不过这个情况也不是不能解释,原来做短信系统有过类似的经历,就是录入的和网页前台显示的编码如果是一致的话,不管你中间存储的是什么类型,那么即使通过别的工具看到的是乱码,但是网页前台一定显示是正常的。我让他看下他的editplus下面sql文件编码格式是否是utf8格式的,如图所示:

网上一次MySQL中文乱码问题的处理过程_MySQL

看到这里他保存的编码格式也是utf-8的啊,怎么会传入到linux下变成乱码了呢?

6, 我去看linux下面的语言格式

[root@AY13080711045157190fZ soft]# echo $LANG
en_US.UTF-8

看到这里我推断出2个原因

1 不是zh_US.UTF-8模式的。难道是中文安装失败导致传到linux上面的sql文件是乱码的形式的吗?

2 要不就是传过来的sql文件保存格式有问题。(但是朋友说了保存格式正确,这点也许概率不大)

7, 我上网google了很多资料,发现如果是en_US.UTF-8语言模式下,是可以正常显示汉字的只要,传上来的sql文件的编码模式是linux模式的utf8编码就行了,到此我可以判定很大概率是朋友上传得sql文件有问题的。我让他方便的话把文件发给我,我在这边检测下他的sql文件。结果这兄弟,没有回复了,估计是有要事走开了。

8,1个半小时后,这兄弟回来了,跟我说:“不好意思啊。这么晚回你 。刚开回去了,问题解决了, 是我文件编码问题。我另存为下utf8 完了再传上去就好使 了。”,就发图给我如下:

网上一次MySQL中文乱码问题的处理过程_MySQL

总结如下:中文显示乱码,大概有这么几个方面

1 服务器端字符串设置,一般统一为utf-8

2 client端字符串设置,看是否为utf8

3 上传的数据的编码模式,一定要选与服务器端的编码模式一致。

bitsCN.com