您的位置:首页 > 数据库 > MySQL

解决MySql Command Line Client查询结果乱码问题

2016-03-11 14:43 866 查看
转自:http://blog.csdn.net/lu8000/article/details/8928474

乱码问题:

数据库是MySql,存储的是中文的内容用MySql Command Line Client 查看是乱码,但是用MySql Administrator查看却显示正确

先看数据库的相关编码

[sql]
view plain
copy

mysql> show variables like 'character_set_%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------+

查看数据库表数据出现乱码,首先MySql Administrator查看却显示正确的,只是用MySql Command Line Client查看显示乱

[sql]
view plain
copy

mysql> select * from student;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | 涓? | 4 |
+----+------+------+
1 row in set (0.00 sec)

问题分析,这个原因主要是受客户端的连接相关编码影响,下面三项
character_set_client

character_set_connection

character_set_results

而这三项是可以通过set names
utf8|set names gbk来可以设置的!另外也说明当前连接的客户端的编码情况没有影响到数据库服务器本身的编码情况。

[sql]
view plain
copy

mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'character_set_%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set (0.00 sec)

mysql> select * from student;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | 上 | 4 |
+----+------+------+
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: