原帖:http://topic.csdn.net/u/20110805/19/e23e6cec-2955-4944-a31b-9bdb58397a31.html版主给的回答很完全,可以解决大部分的问题,不过我的情况感觉很特殊了。my.ini
default-character-set=gbk
mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------+
| 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 | D:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
mysql> show create table t;编码是gbk唯一的不同是文本文档是utf8导入进去的时候,一切看起来是正常,不存在乱码。问题是
SELECT * FROM t WHERE name='张三';查询不到内容.
需要 SELECT * FROM t WHERE name LIKE '张三%';这样才可以,感觉后面有空格或其他内容?
default-character-set=gbk
mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------+
| 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 | D:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
mysql> show create table t;编码是gbk唯一的不同是文本文档是utf8导入进去的时候,一切看起来是正常,不存在乱码。问题是
SELECT * FROM t WHERE name='张三';查询不到内容.
需要 SELECT * FROM t WHERE name LIKE '张三%';这样才可以,感觉后面有空格或其他内容?
+----+-------+
| id | name |
+----+-------+
| 1 | 张三
| 2 | 李四
| 3 | 王五 |
+----+-------+查询的是这样的结果,只有最后一行是正确的,不管导入多少数据,最后一行的就OK,很纳闷!
原来是个回车符号
LOAD DATA INFILE 'D:/data.txt' INTO TABLE t CHARACTER SET UTF8 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';文本文档设置为UTF-8,另外导入的时候编码也是UTF-8,最后一个是我忽略了就是换行是回车换行!
可以使用某些编辑器的 dos 转换成 unix 格式的功能进行导入文件的格式转换,这样会去掉文本文件中的 \r,你再导入应该就正常了。