首页 > 代码库 > mysql查询时乱码解决办法
mysql查询时乱码解决办法
一次建表时显示中文正常,建表后查询却是乱码。
mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | ????? | | table1 | +----------------+ 2 rows in set (0.00 sec)
一般出现这种情况是因为客户端和服务端的编码类型不一致导致。
查看一些客户端和服务端的编码类型:
mysql> show variables like "%char%"; +--------------------------+----------------------------+ | 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/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) mysql>
从中可以看出服务端是utf8,而客户端是latin,临时设置一下客户端编码:
SET character_set_client=‘utf8‘; SET character_set_connection=‘utf8‘; SET character_set_results=‘utf8‘;
再次查看一下表是否乱码:
mysql> show tables; +-----------------+ | Tables_in_test | +-----------------+ | 学生信息表 | | table1 | +-----------------+ 2 rows in set (0.00 sec)
果然是编码不一致导致,解决:
1.如果是数据库编码不一致导致乱码,则需要修改数据库的编码类型:
show create database test; alter database test character set utf8 COLLATE utf8_general_ci;
2.如果是客户端问题,则需编辑配置文件,添加如下一行:
[client] default-character-set=utf8
本文出自 “小东哥” 博客,谢绝转载!
mysql查询时乱码解决办法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。