该问题确实有点老套了!但是也还是没有得到很好的处理办法环境是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,汉字都是乱码请教诸位
+--------------------------+-----------------------------------+
| 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,汉字都是乱码请教诸位
show variables like 'char%';
set names 'gbk';看一下表设置的字符集是什么?http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
mysql> select * from total;
+---+------+---------+
| a | f | message |
+---+------+---------+
| 1 | 1 | Testing |这个,如果你能看到正常的汉字,则说明你字段中存放的并不是UTF8的汉字编码。