标签:
mysqlnavicat字段乱码 |
分类: Java |
navicat 无法插入汉字,提示1366,balabala
原因分析:
MySql和navicat 在字符方面没有设置好。
解决方法:
要同时保证二者都支持汉字,且navicat 中连接属性、数据库、表格等三者均要设置成UFT-8。
1、修改MySql属性。
找到安装目录下my.ini文件,找到“default-character-set=”字段,将=右边修改成“utf8”,保存并重启服务。
2、修改 navicat。
2.1 右键“测试Mysql连接”/连接属性/高级,设置如图。
2.2 右键数据库/数据库属性,设置如图。
右键表格/设计表,设计如图所示。
解决好navicat乱码问题后,在mysql
doc系统下,仍然乱码,折腾了好久,终于让楼主取得真经,都是泪~~
当初主要疑问如下:
1、为什么在doc下显示乱码
原因:navicat、mysql软件、cmd系统三者字符集不一致。注:cmd默认的是gbk规则,貌似不能修改(反正楼主不知道怎么修改),但前二者却是utf8,所以乱码。既然如此,那只能在cmd环境下将mysql的字符集设置成gbk啦。
解决方法
1)navicat中设置的字符集是utf8格式(当时年少,没设置成这个,在表格输入汉字后硬是不让保存,泪奔~~),mysql也要保持一致,必须为utf8。安装时最好修改成uft8,当然也可以修改配置文件,网上有好多方法(总感觉修改不太彻底,还是重新配置好)。
下午发现二者都设置好了,居然还是乱码。尝试许久,才发现连接中的属性“使用Mysql字符集”的勾不能去掉,这是关键!
被网上一些方法误导了,呜呜!!!另外,每个字段都有字符集,都应该设置成utf8。如果连接属性设置好了,后面库、表、字段属性应该都是默认为utf8。
2)在cmd环境下修改mysql字符集。set names gbk; 好不容易成功了,show下成果吧,哈哈!
2、此时在cmd环境下插入含有汉字的字段到表格中,doc系统能显示汉字,为什么在navicat中还是乱码?
原因:上面分析过cmd下是gbk规则,通过这种方法插入到表格中的汉字还是gbk规则,然navicat的数据库是utf8,所以乱码。
其实此时mysql中也是乱码,只不过通过cmd显示的正常而已。不要想复杂了,把navicat当做mysql的影子就行,二者完全一致。当二者均为utf8规则就行,反正都通过navicat操作数据库,如果二次开发时UI端也是乱码,在程序中修改utf8字符集吧。
3、既然cmd是gbk规则,我将mysql和navicat都设置成gbk规则,不就均保持一致了吗?
恭喜你,握下爪吧,我也这样想过,并实施过。可是设置成gbk后,在navicat中手动添加的汉字后仍不能保存表格,哎……