表里只有这两条数据
id name
1 汤姆
2 jerry如果用select * from table1 where name like '%汤%',或用select * from table1 where name like '%j%'
可以正确搜出
id name
1 汤姆以及id name
2 jerry
-----------------------------------------------
但如果用select * from table1 where name like '%a%',就居然能把中文纪录搜出来,结果集为
id name
1 汤姆我字符集用的是UTF8,mysql接触的少,还请各位朋友帮忙解决一下
id name
1 汤姆
2 jerry如果用select * from table1 where name like '%汤%',或用select * from table1 where name like '%j%'
可以正确搜出
id name
1 汤姆以及id name
2 jerry
-----------------------------------------------
但如果用select * from table1 where name like '%a%',就居然能把中文纪录搜出来,结果集为
id name
1 汤姆我字符集用的是UTF8,mysql接触的少,还请各位朋友帮忙解决一下
MySQL 中文显示乱码
show variables like 'char%';set names 'utf8' 试一下。
在mysql-front中看到的状态是这样的
id name
1 "汤姆"
2 "Jerry"不过用php把值取出来在网页上显示一点问题也没有
"character_set_connection","utf8"
"character_set_database","utf8"
"character_set_filesystem","binary"
"character_set_results","utf8"
"character_set_server","utf8"
"character_set_system","utf8"
"character_sets_dir","C:\\Program Files\\MySQL\\MySQL Server 5.1\\share\\charsets\\"
看一下你表中存储的内容id name
1 "汤姆"
2 "Jerry"
2,"Jerry","4A65727279"
结论,你数据库中存储的本身不对,
解决方法,把数据倒出,然后清空后再导入。
然后 delete from students ; 再 回到你的 mysql-front中 set names 'utf8'
然后把数据插入。
新建db链接时要加参
$pdoParams = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'utf8\';');
加参以后添加的“汤姆”总算是E6B1A4E5A786 了,感谢楼上各位,接分接分