mysql数据库为utf8字符集,如何实现命令行插入的中文不乱码呢?
我的数据库端,一定是utf8字符集,因为我通过
show create table 表名 这条命令查看过了,没问题,
但是我在命令行中插入中文字符。总是乱码。我反复试,发现在录入字符前,先运行
set names gbk;
然后就不会出现乱码了。但是这不是我的目的,我想实现,打开命令行,直接插入中文字符,就不是乱码,如何实现呢?
难道命令行不能支持 utf-8 吗?服务器端是utf8,但是为何在命令行设置 gbk ,反而不会出现乱码呢?

解决方案 »

  1.   

    set names gbk,代表的是你传输过程中使用的字符集以及客户端显示时试图使用的字符集,而数据库服务器,你所说,用的是utf8,它是gbk的超集。
    所以,当你使用gbk时,可以进行转换,存储没有问题。你想在utf8的客户端字符下不出现乱码,在xp下,可能得通过一个utf8编码的sql文件才行。因为windows下,似乎不直接支持命令行终端下的utf8编码的显示。要想试这个,可以到ubuntu8或以上版本里头可以一试
    set names utf8
    然后插入,再select查询,得到的不会是乱码。
      

  2.   

    目前WINDOWS中命令行下并不完成的支持UTF8,所以你无法从命令来输入UTF8字符。 也就是为什么你需要用set names 'gbk' 来输入GBK字符串。然后由MYSQL自己进行编码的转换。