mysql client 查询结果的中文乱码问题解决办法
由于产品需求需要对全文检索和数据库查询效率做横向比较,所以需要做些数据库查询工作。
但是在mysql 自带的客户端做select * from demo 时,发现了臭名昭著的乱码问题。
首先考虑对my.ini 的字符集设置成utf8,没有成功,查询仍然是乱码。
最后才发现客户端本身也可以设置字符集。
mysql:> show variable 'character%';
mysql> show variables like 'character%';
+--------------------------+----------------------------------------------------
-----+
| Variable_name | Value
|
+--------------------------+----------------------------------------------------
-----+
| character_set_client | gbk
|
| character_set_connection | gbk
|
| character_set_database | gbk
|
| character_set_filesystem | binary
|
| character_set_results | gbk
|
| character_set_server | gbk
|
| character_set_system | utf8
|
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\chars
ets\ |
+--------------------------+----------------------------------------------------
-----+
8 rows in set (0.00 sec)
现在要做的工作就是,把字符集设置成gbk, 不是utf8
set character_set_client,
set character_set_connection,
set character_set_results, = 'gbk'
正确结果就展示出来了,困扰了2个小时。
mysql> select name from demo where content like '%嘉兴%';
+------------------------------+
| name |
+------------------------------+
| 浙江嘉科电子有限公司 |
| 桐乡市正大涂料有限公司 |
| 昆山钰恒电子衡量器有限公司 |
| 上海川流机电专用设备有限公司 |
| 浙江天美汽车座套有限公司 |
| 广州万程微波设备有限公司 |
| 德清县莫干山蛇类实业有限公司 |
| 嘉兴市亚卓涂料科技有限公司 |
| 海宁市海神电子有限公司 |
| 嘉兴市明成机械设备有限公司 |
| 浙江荣泰科技企业有限公司 |
| 嘉兴市通泰科技有限责任公司 |
| 上海艾珀耐尔机电科技有限公司 |
| 德清县三乐通信线缆有限公司 |
| 泉州鲤城嘉兴工程机械有限公司 |
| 宁波市鄞州繁荣机械配件厂 |
| 德清县勾里镇益豪电子仪器厂 |
| 嘉兴百川打印科技有限公司 |
+------------------------------+
18 rows in set (0.11 sec)