最近被这个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在这里查询创建"新表"信息时,错误信息中返回的“新表”字符是“嶇拌”,而英文字符却显然没问题。
如何让错误返回信息中的中文字符也正确显示?
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在这里查询创建"新表"信息时,错误信息中返回的“新表”字符是“嶇拌”,而英文字符却显然没问题。
如何让错误返回信息中的中文字符也正确显示?
试试
数据库字符集设置?
[mysqld]
character-set-server = GBK
character_set_server latin1 SET character_set_server = GBK ;
看得不太懂。。我用的是Linux下shell终端去登陆本地mysql。既然我能在本地打出正确的字符‘新表’去向服务器查询该表的创建信息,那么它返回的字符集也应该同样是GBK吧??为什么会出现怪异的字?
show variables like 'char%';
建立中文表名试试
show variables like 'char%';
建立中文表名试试; 建立中文表名是可以,即使没有SET character_set_server = GBK ;
我的意思是查询中文表时,返回的错误信息中中文字符不正确。
疑问2:
当前有两个MYSQL数据库:除了版本不一致,其他所有字符变量环境设置都一致。
同时所存储的数据也完全一致包括他们的字符变量。
现在用一个C#做的一个导表工具,在两个数据库之间进行表的转存,
即从A数据库中select数据内容 然后insert到B数据库中去,其中包含中文字符。
现象:工具从A数据库中读取C表,然后插入到B数据库中去,数据正常。
然后再从B数据库中将C表导回到A数据库,就出现乱码。大家能不能给点指导性意见??再声明一下:两个数据库的字符变量环境一致,即client,connection,result,database,都为GBK.
导表工具连接后也都执行“set names gbk”,导的C表也是GBK字符集。