在linux的图形模式下, 打开终端,运行命令没问题,
但是在linux命令行下,select *  from表 ,会出现中文乱码的情况,如何解决。

解决方案 »

  1.   

    字符集的问题。用set name 设置一下就行了。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
    
      

  2.   

    嘿嘿,明白了,建表的时候,我没有设置字符集,所以默认变成CHARSET=latin1 |
    的了。应该在建表开始没添数据时,设置字符集gbk.但是现在那个表我已经建好了,数据都添进去了,我不想重新建表,有没有解决乱码的方法阿?
      

  3.   

    mysql> show create table student;
    +---------+----------------------------------------------------------------------------------------------------------------------------+
    | Table   | Create Table                                                       |
    +---------+----------------------------------------------------------------------------------------------------------------------------+
    | student | CREATE TABLE `student` (
      `id` int(3) default NULL,
      `name` char(10) default NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
    +---------+----------------------------------------------------------------------------------------------------------------------------+
      

  4.   

    你有多少个这样的表?如果只有一个,则 select * from thisTable INTO OUTFILE 'file_name' ; 然后建好表后再LOAD DATA INFILE 导回即可
      

  5.   

    select * from thisTable INTO OUTFILE '/home/gg.txt' , 执行完这条指令后,生成的txt文档里面的中文没有乱码,
    内容如下:1 恭敬现
    2 \\n
    3 国精明这是为什么阿?你的意思是把表的数据,导出到txt文档里保存。在sql里,加上create table student
    ( id int(3) ,
       name char(10) default NULL
    ENGINE=MyISAM DEFAULT CHARSET=gbk ;加上ENGINE=MyISAM DEFAULT CHARSET=gbk后,再把数据导回来,是么?
      

  6.   

    不是,你先生成 /home/gg.txt 
    重新建表以后,再 
    mysql> LOAD DATA INFILE '/home/gg.txt ' INTO TABLE student;
      

  7.   

    我按5搂,我的方法试了,不行,在linux命令行下,select * from student; 显示还是乱码。你六楼的方法和我5搂的方法,没啥区别啊?我刚才以为是我建表的时候,没加ENGINE=MyISAM DEFAULT CHARSET=gbk的缘故。
    create table student 
    ( id int(3) , 
      name char(10) default NULL 
    ENGINE=MyISAM DEFAULT CHARSET=gbk ; 
    但是我重建完表之后,加上ENGINE=MyISAM DEFAULT CHARSET=gbk了,还是不管用啊?!
      

  8.   

    有没有 set names 'gbk'; ?
      

  9.   

     create table ss1
        -> (
        -> id int(3) default null,
        -> name char(10) default null
        -> )engine=muisam default charset=gbk;set names 'gbk'.难道不是这样设置 default charset=gbk ?
      

  10.   

    我在 /etc/my.cnf 里面设置了 
    [mysql]
    default-character-set=gbk
      

  11.   

    粗略的读了一下,你这里说的也不是很清楚。  还有教育网上这个论坛有点慢。2. 确保,联接参数与这个字段字符集一致,你可以用 set name 'charsetname';
     比如, set name 'gbk';
     这条命令会同时修改 character_set_client,character_set_connection,character_set_results
     (如果你的这架MySQL中都为中文,则你可以在my.ini或my.cnf中加上或修改这个参数, 参数文件修改后需重启MySQL服务)
    [mysql]
    default-character-set=gbk
      

  12.   

    知道,为什么在linux下出现乱码了,其实那个不是乱码,是因为我的linux下不支持中文。在图形界面的时候,select * from table 时,不出现乱码。
    在图形界面里,在sql> select * from table into outfile 'file name';时,生成的文件中不出现乱码,简体中文还是简体中文。无论在图形界面,还是命令行,只要mysqldump ,就会使中文变成下面的样子。1 恭敬现
    2 我
    3 国精3,'?煤???梅'),(1,'鎭暚鐜�),(2,'鎴�),(3,'鍥界簿鏄
    我想问的是,是不是 linux系统 ,在#,提示符下,不支持中文的问题阿?
      

  13.   

    问题解决了 
    假设你的xxx.sql文件的编码为 yyy 
    那么mysql xxx < xxx.sql之前先 set names yyy 
    一切ok~~ 
    不用管原来数据库和现在数据库的字符集。 
    当然如果从utf8到ascii之类的转换大概是不行的
    set names gdk 直接在登录数据库之前的系统指令,是么?