如题,用navicat里的命令行执行insert语句后中文显示乱码,而用windows dos窗口执行insert 语句时则正常显示。首先肯定我在navicat中建立数据库时编码选的就是utf-8。java
网上查了不少,方法有:mysql
1)修改mysql的安装目录bin下的my.ini文件,确保character_set_server = utf8和default-character-set = utf8;单纯的这么设,对我来讲无效;sql
2)仍然是修改my.ini文件,已经有的条目如character_set_server就修改其值为utf8,没有的则按照下面的加上,分别是:数据库
--在 [mysqld] 标签下加上二行
default-character-set = utf8
character_set_server = utf8
--在 [mysql] 标签下加上一行
windows
default-character-set = utf8eclipse
--在 [mysql.server]标签下加上一行
default-character-set = utf8编码
--在 [client]标签下加上一行
spa
default-character-set = utf8命令行
这样设置后,对我依然无效;orm
3)右键出现乱码的链接--》链接属性--》高级,将使用Mysql字符集前的勾去掉,以下:
不过设置后,对我依然无效;
4)在第 3)步的基础上,将编码由65001(utf-8)改成Current Windows Codepage,以下:
至此,个人问题终于结果。如今不管是navicat的命令行插入仍是windows dos界面插入中文,都正常显示。
附:有时会出现这样一种状况,用navicat插入数据库以及从数据库中取出中文都正常显示,但用java从数据库中取出时则显示乱码,eclipse及database都是使用的utf-8,这时要将“使用Mysql字符集”勾选,从新插入数据库,保证中文正常显示,这样用java从数据库取出的中文也是正常显示的。