mysql 查询结果问题。乱码甚至是空白

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 查询结果问题。乱码甚至是空白相关的知识,希望对你有一定的参考价值。

如图。我是通过txt文件导入数据到mysql数据库中的。
txt的内容是:

导入后数据库查的的是:

谢谢指导一下啊。。。。

参考技术A (1)乱码 一般问题是mysql编码问题。txt文档 是你 没有utf-8格式的,你可以用notepad++来代替记事本,编辑一下。一般mysql使用了utf-8格式。(2) 为了避免错误,你还是使用insert 语句,执行程序来导入这些。也可能在导入的过程中,有一些字符(隐藏字符比如空格 tab 换行等)引起问题,这个可能性不大。 参考技术B 就这几个字段,拼接成insert语句导入吧
上图导入时就是乱码了。
查查你mysql设置的默认编码是什么,要是gbk,gb2312才行的啊。本回答被提问者采纳
参考技术C 输入status看输出的是什么编码格式,最好统一一下

通过linux远程连接mysql,查询结果中文为乱码小结

首先本地办公环境为windows使用的是navicat连接的mysql

navicat连接mysql时查询结果正常

查看编码方式:

mysql> show variables like ‘%character%‘;
+--------------------------+--------------------------------+
| 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

 

说明服务器端设置正常

然后我又用linux远程连接mysql,查询结果中文乱码

再次查看编码方式:

mysql> show variables like ‘%character%‘;
+--------------------------+--------------------------------+
| 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


 

卧槽,部分编码方式怎么变成latin1了,迅速检查了下mysql服务器端配置文件编码配置,全都设置了utf8,没有问题

重启一下mysql服务器端,linux远程连接查询仍然为中文乱码

看来不是服务器问题,查询客户端版本

#rpm -qa mysql
mysql-5.1.73-7.el6.x86_64

服务器端版本

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.25    |
+-----------+
1 row in set

看来是客户端版本过老了

 

解决方法:

1、每次查询前设置查询结果集编码为utf8 set character_set_results=utf8

2、更新客户端版本


本文出自 “linux_cheng” 博客,请务必保留此出处http://6764097.blog.51cto.com/6754097/1880617

以上是关于mysql 查询结果问题。乱码甚至是空白的主要内容,如果未能解决你的问题,请参考以下文章

使用JDBC中的出现的乱码和查询无结果问题

通过linux远程连接mysql,查询结果中文为乱码小结

mysql用GROUP_CONCAT合并查询出现乱码?求大神!!!

填补Mysql查询中时间序列空白的最佳方法

为啥我的带有命名参数的查询返回空白结果?

解决Python查询Mysql数据库信息乱码问题