为什么php设定php mysql_query(set names utf-8)后,中文还是乱码

chenjing1121 2009-04-04 10:22:10
如题 但是如果是gb2312就可以正常显示中文
...全文
16674 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
前云 2012-05-24
回复
doctor219 2011-07-06
mysql_query(set names utf8)
-------------
我亲身体会了

回复
helcyon 2010-09-19
不知道怎么的windows下应该是 set names utf8,到linux下就需要写成set names utf-8
回复
zhenglm 2009-06-04
如果用gb2312是中文,那么用utf8就应该是乱码,mysql语句对了也是。。。因为编码方式不一样。。。
回复
vnking 2009-06-04
帮顶一下。。。
回复
[Quote=引用 6 楼 phpBoy005 的回复:]
mysql_query(set names utf8)
[/Quote]

今天也是一样,发现确实是写错了。是utf8 而不是utf-8
回复
isfrog 2009-04-04
楼上正解,jfing
回复
phpboy 2009-04-04
mysql_query(set names utf8)
回复
那就用gb2312吧
回复
phpboy 2009-04-04
应该是要保持编码一致的
网页中
<meta http-equiv="content-type" content="html/text; charset=utf-8" />
header
@header("content-Type: text/html; charset=utf-8");
回复
liuhuimin88 2009-04-04
最好还是用gb2312的
回复
chenjing1121 2009-04-04
mysql我用的是utf-8,php页面我也用utf-8,但还是出错,用了gb2312后就没问题。
回复
你在建立数据库的时候是否更改了原先的校对没有?
如果有的话,你的mysql_query()的内容要和你的校对的一致。

==================
建议一般不要更改MySQL的校对和整理!
都用utf-8,在网页文件中的charset也用utf-8,否则中文数据插入了也会变成乱码!
回复
孤灯空明 2009-04-04
外国的免费空间 造成的?
回复
Zijian_Zhang 2009-04-04
[Quote=引用楼主 chenjing1121 的帖子:]
如题  但是如果是gb2312就可以正常显示中文
[/Quote]

mysql_query("set names utf8");
而不是utf-8。

楼主的意思是不是指定为GB2312就没事呢??如果是那么你的数据库不是UTF8而是GB2312的。

网页用header强制指定编码,文件自己的 编码也要是utf-8的。
回复
Lee2K 2009-04-04
用mysql4.0.27以前的版本.没有数据校对的话,就不会出现UTF-8的乱码问题,这是最直接的解决方法,其他方法的话.很麻烦,如果你网页文件本身是UTF-8格式的.那么,够你折腾的了.详情可参考http://topic.csdn.net/u/20090104/22/69c003fc-7e74-459a-a9f0-f22e43427e09.html这个.
回复
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2009-04-04 10:22
社区公告
暂无公告