如题,用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字符集前的勾去掉,如下:

    130313_KPhd_2430057.png

不过设置后,对我依然无效;

4)在第 3)步的基础上,将编码由65001(utf-8)改为Current Windows Codepage,如下:

    130542_jvGR_2430057.png

至此,我的问题终于结果。现在无论是navicat的命令行插入还是windows dos界面插入中文,都正常显示。

附:有时会出现这样一种情况,用navicat插入数据库以及从数据库中取出中文都正常显示,但用java从数据库中取出时则显示乱码,eclipse及database都是使用的utf-8,这时要将“使用Mysql字符集”勾选,重新插入数据库,保证中文正常显示,这样用java从数据库取出的中文也是正常显示的。

转载于:https://my.oschina.net/u/2430057/blog/626413

更多推荐