使用show create table 获得的查询结果中,中文字符为乱码,其它查询正常?什么原因?如何解决?

解决方案 »

  1.   

    show variables like 'char%'; 
    贴结果
    估计是字符集问题 
      

  2.   

    字符集问题先执行set names 'UTF8' 看看
      

  3.   

    字符集没有问题,因为其它查询结果都是正常的,我用的字符集全部是utf-8,我想把查询结果输出到文件,只有这个查询是乱码!
      

  4.   

    肯定是字符集问题
    因为你这个内容是保存在系统表里面的,你读取时,也是从系统表里面读出来
    如果你用当时建这个表的那个终端去show create table,而且确定show variables like 'char%'跟当时连接的情况完全一样,那显示结果肯定是正常的
      

  5.   

    CREATE TABLE `t` (
      `cols` char(255) default NULL COMMENT '是这一个注释'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    用show create table 存入文件后 这个注释 就是乱码,其它 select 都正常
      

  6.   

    SELECT column_comment FROM INFORMATION_SCHEMA.columns where  table_schema='库名' and table_name='表名'
    你这样看看保存在系统表里面注释是否正常吧。
      

  7.   

    我可能没有描述清楚,是这样的,我想做数据库的备份,需要用show create table 获取表的创建语句,其它包含中文的语句都是输出成功,只有这个里面的注释是乱码,用vinsonshen的方法在navicat里显示都是正常的,就是输出到文件后是乱码,navicat应该有字符修正,我也用过在每条语句前 加set names utf8,但无效,实在搞不明白是咋回事了,而我试图将那些乱码还原,用了很多种办法也没有效果!
      

  8.   

    乱码 是你文件编码问题吧你用editplus试试 保存为utf8编码格式
      

  9.   


    两种可能
    1。你创建这个表的时候,当时工具的环境中的字符集不是 utf8 的,
    2。你当前工具无法显示UTF8字符集(比如WINDOWS下的DOS工具无法正常显示UTF8)
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  10.   

    去年的帖子,回复一下。我搜了好一阵才找到问题原因。
    http://bugs.mysql.com/bug.php?id=10491
    这个是MySQL的bug,简单来说就是show create table语句返回的内容是binary,有些程序会处理错误,例如connectory/j,会默认转为US-ASCII,所以需要进行显示的编码转换。
    MySQL 5.1应该修复了。