加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

navicat无法插入汉字和Mysql汉字乱码问题

(2015-08-06 10:49:35)
标签:

mysql

navicat

字段乱码

分类: 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中手动添加的汉字后仍不能保存表格,哎……




0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有