众所周知php中有设置提取数据时设置编码格式的语法:$temp=mysql_query("set names utf-8");
查询显示数据的语句.....................;如果我的数据库的编码格式为utf8(我用的是mysql-gui-tools)创建的表,里面选择数据库编码格式的时候没有utf-8只有utf8.所以我就选择了utf8.如果我设置:$temp=mysql_query("set names utf-8");
查询显示数据的语句.....................; //显示数据为乱码,即ie用utf-8编码格式显示数据.
如果我设置:$temp=mysql_query("set names utf8");
查询显示数据的语句.....................; //显示数据为乱码,即ie用utf-8编码格式显示数据.
我想请问一下,utf-8和utf8是否为同一种编码呢?
还有就是如果我用命令建立表的时候可否设置编码格式为utf-8而不用utf8.?还有一点就更奇怪了,我的表的编码格式为:utf8时,
如果我设置:$temp=mysql_query("set names gb2321");
查询显示数据的语句.....................; //显示数据正常,即ie用gb2312编码格式显示数据.请问此时在php脚本怎么能把utf8编码转换为gb2312呢,而且还不是乱码,一点道理都没有啊,大家说是吧?
查询显示数据的语句.....................;如果我的数据库的编码格式为utf8(我用的是mysql-gui-tools)创建的表,里面选择数据库编码格式的时候没有utf-8只有utf8.所以我就选择了utf8.如果我设置:$temp=mysql_query("set names utf-8");
查询显示数据的语句.....................; //显示数据为乱码,即ie用utf-8编码格式显示数据.
如果我设置:$temp=mysql_query("set names utf8");
查询显示数据的语句.....................; //显示数据为乱码,即ie用utf-8编码格式显示数据.
我想请问一下,utf-8和utf8是否为同一种编码呢?
还有就是如果我用命令建立表的时候可否设置编码格式为utf-8而不用utf8.?还有一点就更奇怪了,我的表的编码格式为:utf8时,
如果我设置:$temp=mysql_query("set names gb2321");
查询显示数据的语句.....................; //显示数据正常,即ie用gb2312编码格式显示数据.请问此时在php脚本怎么能把utf8编码转换为gb2312呢,而且还不是乱码,一点道理都没有啊,大家说是吧?
ERROR 1115 (42000): Unknown character set: 'utf'
mysql> set names utf8;
Query OK, 0 rows affected (0.11 sec)
如果是这样的话,那么我的表的编码为utf8,$temp=mysql_query("set names gb2312"),之后查询数据并输出结果,不会是乱码,而gb2312是一个汉字2个字节,想请问你一下,此时的编码是如果转换过来的呢,难道mysql_query()这个函数有转换这个功能不成? 还有如果不设置mysql_query("set names gb2312")这句话的时候,在php脚本中读取和插入数据默认的用的是什么编码?
比方你跟一个英国人(不懂汉语的)说汉语:我是中国人!他不明白!
然后你改口 I'm a Chinese! 他就明白了!
然后就是一句经典台词:
他明白了,你明白了么?
在php中mysql_query("set names utf-8");因为mysql中定义的是utf8而不是utf-8,所以这条语句是执行不成功的,效果和mysql_query("set names test")一样,所以你存储和获得的mysql编码并没有改变。改为
mysql_query("set names utf8");就行了。
如果mysql存的是utf8,就会自动转换成gb2312.
(以上仅个人看法,没有证实过)
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
HTML里没有UTF8一说,只有UTF-8。
还这样踊跃回帖,这只能说明 php 已经没落了