MYSQL 一个很怪的问题 想不通 本帖最后由 sytdeedee 于 2011-07-12 10:23:08 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 字符集问题?show variables like 'char%'; 这样的:mysql> show variables like 'char%';+--------------------------+---------------------------------------------------------+| Variable_name | Value |+--------------------------+---------------------------------------------------------+| character_set_client | latin1 || character_set_connection | latin1 || character_set_database | latin1 || character_set_filesystem | binary || character_set_results | latin1 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir | D:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |+--------------------------+---------------------------------------------------------+8 rows in set 我试了一下用hex转换,情况如下:mysql> select hex('表示');+------------+| hex('表示') |+------------+| 958EA6 |+------------+1 row in setmysql> select unhex('958EA6');+-----------------+| unhex('958EA6') |+-----------------+| 侮ヲ |+-----------------+1 row in setmysql> select hex('表\示');+-------------+| hex('表\示') |+-------------+| 955C8EA6 |+-------------+1 row in setmysql> select unhex('955C8EA6');+-------------------+| unhex('955C8EA6') |+-------------------+| 表示 |+-------------------+1 row in set也就是说用“表示”的16进制码转换回去是乱码,而用“表\示”的16进制码转换回去反而会得到正确结果。 应该是你客户端字符集的问题set names gbk; http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspxMySQL 中文显示乱码 按时间段生成明细的问题... 把一台服务器上的一个库里的一张表用语句insert导另一台服务器上的一个库里,如何做到? 难题! mysql数据库,数据的同步、转存、一百万条数据 人才网数据库的设计 怎么通过phpmyadmin设置递增 mysql怎么实现自增 为何数据库中的记录显示不到网页上? MySQL 存储过程 调用失败 求指点 mysql cluster往表中插入数据会自动分区存储到不同数据节点吗 问个telnet的小问题。 MYSQL恢复
show variables like 'char%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set
+------------+
| hex('表示') |
+------------+
| 958EA6 |
+------------+
1 row in setmysql> select unhex('958EA6');
+-----------------+
| unhex('958EA6') |
+-----------------+
| 侮ヲ |
+-----------------+
1 row in set
mysql> select hex('表\示');
+-------------+
| hex('表\示') |
+-------------+
| 955C8EA6 |
+-------------+
1 row in setmysql> select unhex('955C8EA6');
+-------------------+
| unhex('955C8EA6') |
+-------------------+
| 表示 |
+-------------------+
1 row in set也就是说用“表示”的16进制码转换回去是乱码,而用“表\示”的16进制码转换回去反而会得到正确结果。
MySQL 中文显示乱码