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