使用show create table 获得的查询结果中,中文字符为乱码,其它查询正常?什么原因?如何解决?
解决方案 »
- 交叉表第二个记录集如何获取?
- kettle连接mysql时报错
- 求助,如何使用mysql实现得到汉字的首字母
- 求助 mysql数据升级,导入数据出问题了
- Mysql在unix下和在win32下的连接字符串是不是一样的
- 送分了,查询问题,怎么把这个查询语句改成不用子查询的查询语句,但要一样的查询结果!
- MySQL里面有没有日期函数 将字符”Thu, 7 Aug 2003 05:42:23 +0800“ 转换成"yyyy-mm-dd hh:mm:ss"格式日期?
- SOS!!mysql中用属性文件导入:驱动程序,url,username,password时,属性文件放在哪里??????
- 基于浏览器的mysqlAdmin怎么用?
- 查询 # [displayid相同的记录, 把 pid 值比较小的记录选出来]
- mysql workbench为何无法远程连接数据库?
- 求一SQL语句.
贴结果
估计是字符集问题
因为你这个内容是保存在系统表里面的,你读取时,也是从系统表里面读出来
如果你用当时建这个表的那个终端去show create table,而且确定show variables like 'char%'跟当时连接的情况完全一样,那显示结果肯定是正常的
`cols` char(255) default NULL COMMENT '是这一个注释'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
用show create table 存入文件后 这个注释 就是乱码,其它 select 都正常
你这样看看保存在系统表里面注释是否正常吧。
两种可能
1。你创建这个表的时候,当时工具的环境中的字符集不是 utf8 的,
2。你当前工具无法显示UTF8字符集(比如WINDOWS下的DOS工具无法正常显示UTF8)
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
http://bugs.mysql.com/bug.php?id=10491
这个是MySQL的bug,简单来说就是show create table语句返回的内容是binary,有些程序会处理错误,例如connectory/j,会默认转为US-ASCII,所以需要进行显示的编码转换。
MySQL 5.1应该修复了。