最近被这个mysql字符集弄得是焦头烂额,望各位大侠能指点迷津。。疑问1:
shell#mysql -uroot -p111111
mysql>use test;
mysql>show variables like 'char%';character_set_client       gbk
character_set_connection   gbk
character_set_database     gbk
character_set_filesystem   binary
character_set_results      gbk
character_set_server       latin1
character_set_system       utf8mysql>show tables;PB1m
1 row in set(0.01sec)mysql>show create table 新表;
ERROR 1146(42S02):Table 'test.嶇拌' dosen't exist
mysql>show create table info;
ERROR 1146(42S02):Table 'test.info' dosen't exist在这里查询创建"新表"信息时,错误信息中返回的“新表”字符是“嶇拌”,而英文字符却显然没问题。
如何让错误返回信息中的中文字符也正确显示?

解决方案 »

  1.   

    SET NAMES GBK
    试试
    数据库字符集设置?
      

  2.   

    MY.INI
    [mysqld]
    character-set-server = GBK
      

  3.   

    你看看我问题中显示的字符变量难道不是“set names gbk”的结果?
      

  4.   

    SET character_set_server = GBK ;
      

  5.   

    你是命令行下,你的mysql工具是按照你操作系统设置来的。 换到mysql query browser 中执行就可以了。或者检查一下你的操作系统中的区域设置。
      

  6.   

    重点是:
    character_set_server      latin1 SET character_set_server = GBK ;
      

  7.   


    看得不太懂。。我用的是Linux下shell终端去登陆本地mysql。既然我能在本地打出正确的字符‘新表’去向服务器查询该表的创建信息,那么它返回的字符集也应该同样是GBK吧??为什么会出现怪异的字?
      

  8.   

    SET character_set_server = GBK ; 
    show variables like 'char%'; 
    建立中文表名试试
      

  9.   

    我测试了,确实是有这问题,比如 select 我文档里是说 用SET NAMES XXX 也可以转化 错误信息的字符, 事实上不行.这可能是bug吧
      

  10.   

    SET character_set_server = GBK ; 
    show variables like 'char%'; 
    建立中文表名试试; 建立中文表名是可以,即使没有SET character_set_server = GBK ;
    我的意思是查询中文表时,返回的错误信息中中文字符不正确。
      

  11.   

    好了,上一个疑问告一段落,就当它是一BUG吧··
    疑问2:
    当前有两个MYSQL数据库:除了版本不一致,其他所有字符变量环境设置都一致。
    同时所存储的数据也完全一致包括他们的字符变量。
    现在用一个C#做的一个导表工具,在两个数据库之间进行表的转存,
    即从A数据库中select数据内容 然后insert到B数据库中去,其中包含中文字符。
    现象:工具从A数据库中读取C表,然后插入到B数据库中去,数据正常。
    然后再从B数据库中将C表导回到A数据库,就出现乱码。大家能不能给点指导性意见??再声明一下:两个数据库的字符变量环境一致,即client,connection,result,database,都为GBK.
    导表工具连接后也都执行“set names gbk”,导的C表也是GBK字符集。
      

  12.   

    问题1: 在你的WINDOWS客户装装个mysql query browser ,这样可以解决汉字问题。 但强烈不推荐使用汉字做为表名,列名。疑问2: 检查一下数据库的字符集,表的字符集,列的字符集是否都一样?http://dev.mysql.com/doc/refman/5.1/zh/charset.html