该问题确实有点老套了!但是也还是没有得到很好的处理办法环境是Red hat linux, mysql 5.1.30mysqldump备份数据库,数据库的字符集各项参数如下:
+--------------------------+-----------------------------------+
| Variable_name            | Value                             |
+--------------------------+-----------------------------------+
| character_set_client     | latin1                            | 
| character_set_connection | latin1                            | 
| character_set_database   | utf8                              | 
| character_set_filesystem | binary                            | 
| character_set_results    | latin1                            | 
| character_set_server     | utf8                              | 
| character_set_system     | utf8                              | 
| character_sets_dir       | /usr/mysql-5.1.30/share/charsets/ | 
+--------------------------+-----------------------------------+set @@character_set_client=utf8
set @@character_set_connection=utf8
@@character_set_results没调整
+--------------------------+-----------------------------------+
| Variable_name            | Value                             |
+--------------------------+-----------------------------------+
| character_set_client     | utf8                              | 
| character_set_connection | utf8                              | 
| character_set_database   | utf8                              | 
| character_set_filesystem | binary                            | 
| character_set_results    | latin1                            | 
| character_set_server     | utf8                              | 
| character_set_system     | utf8                              | 
| character_sets_dir       | /usr/mysql-5.1.30/share/charsets/ | 
+--------------------------+-----------------------------------+
在mysql客户端中操作查询,中文是正常的;如果character_set_results=utf8,反而中文是乱码使用mysqldump备份数据
mysqldump -uroot -p --default-character-set=utf8 dbname > dbname.sql
在支持utf8的终端打开dbname.sql,汉字都是乱码请教诸位

解决方案 »

  1.   

    show create table t1;
    show variables like 'char%';
    set names 'gbk';看一下表设置的字符集是什么?http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   

    在mysql客户端中操作查询,中文是正常的如果你的 mysql客户端 是指的 
    mysql> select * from total;
    +---+------+---------+
    | a | f    | message |
    +---+------+---------+
    | 1 |    1 | Testing |这个,如果你能看到正常的汉字,则说明你字段中存放的并不是UTF8的汉字编码。
      

  3.   

    character_set_results    | latin1   结果集怎么是latin1