问题摘要:
Navicat 中表描述中文均正常,只有字段注释中文乱码,原因是系统本身编码(命令行chcp)中为936(GBK)而不是65001(UTF8)造成的。
使用场景:
Navicat for MySQL,数据库连接工具
表描述,表数据中文均正常,只有字段注释中文乱码
过程:
1.各种my.ini设置UTF8,重启MySQL服务(已设过,非根本原因)
2.执行SQL查看编码是否UTF8,设置编码为UTF8(设完无效果,非根本原因)
show variables like 'char%';
show variables like 'collation_%';
解决方案:
1.查看系统本身的编码,打开命令行输入chcp
如果Active code page(活动代码页)值不是65001(UTF8),而是其他比如936(GBK)
如下所示:
注:这个就是我这个场景的根本原因,现在要做的就是把值设为65001
方法一:修改windows系统默认的编码格式
2、以WIN10为例,设置-时间和语言
3.语言-管理语言设置
4.区域-管理(选项卡)-更改系统区域设置-
勾选-Beta版:使用Unicode UTF-8提供全球语言支持
5.重启电脑,系统编码已经为UTF8
6、Navicat fo Mysql -连接属性-高级--勾选使用MySQL字符集
7.问题解决
方法二:直接修改注册表,在注册表里添加系统的UTF-8格式
具体可参见下面这篇更新的最新文章,用于修改系统注册表的UFT8方法记录
WIN10的cmd查看编码方式,命令行窗口修改UTF-8编码_乞力马扎罗の黎明的博客-CSDN博客
1、 快捷键 win+R, 在运行中输入"regedit"
2、找到注册表路径,添加utf-8变量值
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
3、添加注册表信息,即可永久修改系统格式。
注:仅供自己学习,记录问题和参考,共勉!
--------------------------------------------------------------------------以下无正文---------------------