Navicat中文乱码问题

思月行云 2010-10-13 09:16:51
先前一直在用微软的SqlServer,MySql最近刚刚用,还不太熟。
客户端管理工具,我选用的是Navicat,使用时出现了如下的现象:
中文存取方面,我设定的字段格式为text,字符集为utf8.
1>如果在C#程序中使用Insert插入中文数据,则使用Select读出的数据也是中文的,但在Navicat中看到的相关字段显示为乱码。
2>如果直接在Navicat的相关表格中直接写入一条记录(某些字段包含中文),则在程序中Select得到的数据均为"???"。
感觉程序中认定的字符集似乎和Navicat默认的不符……查了一些资料,也没有得出一个确实的解决方法。
想请教大家,以上问题是由于什么原因引起的?应该如何来解决?非常感谢大家~~~
...全文
7947 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
rgwangpeng 2013-05-09
  • 打赏
  • 举报
回复
7楼正解!!
zheng0101 2011-10-24
  • 打赏
  • 举报
回复
牛人 谢啦[Quote=引用 7 楼 oncelegend88 的回复:]

在“连接属性”的设置中,高级-“使用mysql字符集”去掉钩,并且将编码改为10008-GB2312.
然后进入navicat的控制台后,show variables like 'char%';命令后如下:
+--------------------------+---------------------------------------+
| Variable_name ……
[/Quote]
cycwind 2011-08-10
  • 打赏
  • 举报
回复
学习了
yixinshan 2011-06-23
  • 打赏
  • 举报
回复
把之前的连接删除,然后在上面【链接】图标点下 新建链接 在“连接属性”的设置中,高级-“使用mysql字符集”去掉钩,并且将编码改为10008-GB2312
hexawing 2011-02-14
  • 打赏
  • 举报
回复
其实都不用,直接设置连接属性里的“高级”→“使用MySQL字符集”就好了……我的Navicat是9.0
wkres 2010-10-18
  • 打赏
  • 举报
回复
我用的是8,首先你要建立连接。输入用户密码把库连接上
然后我的 字符集使用的是默认的latin1
在Navicat的 连接右键找找连接属性我选的是Current Windows Codepage
然后导入数据就不是乱码了

这估计也和你导入数据的字符集可能有关。
我在命令行下汉字也不会乱码
hawk198 2010-10-18
  • 打赏
  • 举报
回复
说明你的mysql和程序之间字符集不相同,比如你程序是gbk或者gb2312,而mysql一般都是utf-8
navicat是可以协商字符集的,所以nabicat与mysql服务端是一样的字符
你可以看看my.cnf或者my.ini是什么字符集,将其修改跟你程序用的一样即可
如果想要跟navicat同样,需要set names gbk
然后在[mysqld]节里面修改或者添加
character-set-server=GBK
重启mysql
试试看
oncelegend88 2010-10-18
  • 打赏
  • 举报
回复
在“连接属性”的设置中,高级-“使用mysql字符集”去掉钩,并且将编码改为10008-GB2312.
然后进入navicat的控制台后,show variables like 'char%';命令后如下:
+--------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql-5.1.32-win32\share\charsets\ |

此时我们需要在控制台运行 set names 'gbk'命令,运行后再次show variables like 'char%';命令查看结果如下:

+--------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql-5.1.32-win32\share\charsets\ |

客户端连接环境设置算是完成了。接着中文数据该怎么插还是怎么插,不会再有乱码出现。

至于从.sql.txt等文本批量导入数据,则需要将相应的文件转化为gbk格式保存再导入,否则导入后会乱码
ACMAIN_CHM 2010-10-13
  • 打赏
  • 举报
回复
执行一下
set names 'gbk';




参考下贴中的检查方法。



http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
WWWWA 2010-10-13
  • 打赏
  • 举报
回复
Navicat没有用过,试试
set names utf8;
在执行其它的SQL语句
思月行云 2010-10-13
  • 打赏
  • 举报
回复
Navicat刚刚用了没多久,可以麻烦楼上这位仁兄把操作步骤说的详细一点吗?
WWWWA 2010-10-13
  • 打赏
  • 举报
回复
set names utf8试试

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧