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

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

2017-07-06 18:59 477 查看
乱码问题: 
数据库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来可以设置的!
或者是
set
character_set_client=gbk
set character_set_connection=gbk
set character_set_results=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 |  

+----+------+------+  

转自 http://blog.csdn.NET/lu8000/article/details/8928474
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 乱码