今天在做一个项目的时候遇到了一个很大的难题,就是在导入一个sql文件的时候,sqlyog乱码,导入navicat却显示正常。抱着不能得过且过的思想,我绝不管花再多的时间去搞定一个问题,都是值得的。所以,有什么错的地方请指教出来,纯属讨论。

 

  有兴趣的可以自己操作下,我把文件也放上来

         链接:https://pan.baidu.com/s/1mlmMDMFFcZ0Kocy0CUawyQ 
         提取码:6gnq

1.sql文件截图

(我用Notepad++打开的,可以查看字符编码,如果不是我所显示的UTF-8的格式,请按照以下修改                  https://jingyan.baidu.com/article/ff42efa9e04733c19e2202f4.html) 

sqlyog和navicat都已UTF-8的格式打开同一个文件,sqlyog乱码,navicat正常

 

2.sqlyog导入截图

sqlyog和navicat都已UTF-8的格式打开同一个文件,sqlyog乱码,navicat正常

 

3.navicat导入截图

sqlyog和navicat都已UTF-8的格式打开同一个文件,sqlyog乱码,navicat正常

 

         当然了,明眼人一看就知道是字符编的问题,那么又该如何修改字符编码才对呢,这才是最重要的。

 

解决方法1:

         首先我想到的是文件系统的字符编码,即该ao.sql的字符编码集和sqlyog的文件系统字符编码及不一样,ao.sql的字符编码集不用说,在第一个图中就可以看出是UTF-8的,这是国际通用的字符编码集。

         那么sqlyog和navicat呢,,如下

      sqlyog连接信息

      sqlyog和navicat都已UTF-8的格式打开同一个文件,sqlyog乱码,navicat正常

      navicat连接信息

    sqlyog和navicat都已UTF-8的格式打开同一个文件,sqlyog乱码,navicat正常

      这是不是sqlyog指定字符编码没起作用,但是navicat起作用了,然后我看到了这一个文章https://blog.csdn.net/weixin_42978998/article/details/85274893

    打开CMD,输入指定chcp命令,如下

sqlyog和navicat都已UTF-8的格式打开同一个文件,sqlyog乱码,navicat正常

返回的是936,936是GBK,国内专有中文字符编码集

sqlyog和navicat都已UTF-8的格式打开同一个文件,sqlyog乱码,navicat正常

  这说明我电脑的文件系统指定默认的字符编码集是GBK,我需要修改文件系统未UTF-8即可,所以根据提示金鱼

语言设置-语言管理设置,如下,将红圈内勾上,重启电脑之后,一切显示正常了。

sqlyog和navicat都已UTF-8的格式打开同一个文件,sqlyog乱码,navicat正常

 

 

 

  解决方式2:

         在经过第一个解决方案后,我设想,是不是不用将电脑系统改成UTF-8,只需要改变sqlyog的连接属性,即可,如下

sqlyog和navicat都已UTF-8的格式打开同一个文件,sqlyog乱码,navicat正常

选择GBK或者gb2312,sqlyog也显示正常了。

 

至于为什么会这样,我就不清楚了,可能是我安装的mysql是解压版的,也有可能是sqlyog本身的问题,至于是哪种,各位大佬指教下。

 

 

附上字符编码集:https://blog.csdn.net/ZYY88886666/article/details/75285780

 

 

 

 

 

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-05
  • 2021-10-29
  • 2022-12-23
  • 2022-02-01
  • 2021-07-08
  • 2022-02-11
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-02-09
  • 2021-04-04
  • 2022-12-23
相关资源
相似解决方案