$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呢,而且还不是乱码,一点道理都没有啊,大家说是吧?
30 个解决方案
#1
区别:
mysql> set names utf-8;
ERROR 1115 (42000): Unknown character set: 'utf'
mysql> set names utf8;
Query OK, 0 rows affected (0.11 sec)
mysql> set names utf-8;
ERROR 1115 (42000): Unknown character set: 'utf'
mysql> set names utf8;
Query OK, 0 rows affected (0.11 sec)
#2
那么是否是说在mysql中utf8也就是我们平时说的utf-8(即英文用一个字节表示,中文用3个字节表示?)
如果是这样的话,那么我的表的编码为utf8,$temp=mysql_query("set names gb2312"),之后查询数据并输出结果,不会是乱码,而gb2312是一个汉字2个字节,想请问你一下,此时的编码是如果转换过来的呢,难道mysql_query()这个函数有转换这个功能不成? 还有如果不设置mysql_query("set names gb2312")这句话的时候,在php脚本中读取和插入数据默认的用的是什么编码?
如果是这样的话,那么我的表的编码为utf8,$temp=mysql_query("set names gb2312"),之后查询数据并输出结果,不会是乱码,而gb2312是一个汉字2个字节,想请问你一下,此时的编码是如果转换过来的呢,难道mysql_query()这个函数有转换这个功能不成? 还有如果不设置mysql_query("set names gb2312")这句话的时候,在php脚本中读取和插入数据默认的用的是什么编码?
#3
好你没什么区别。你再看一下,你表里的字段的整理一项用的是什么编码,是否是:utf8-gen**** 之类的。
#4
是没有区别的utf8-bin这些仅仅是整理集,用于说明查询和存储时的排序方式比如utf8-bin就是一个区分大小写的按照ascii码的顺序大小依次排列的整理集
#5
utf8 和 utf-8 意义一样,表示不一样而已!
比方你跟一个英国人(不懂汉语的)说汉语:我是中国人!他不明白!
然后你改口 I'm a Chinese! 他就明白了!
然后就是一句经典台词:
他明白了,你明白了么?
比方你跟一个英国人(不懂汉语的)说汉语:我是中国人!他不明白!
然后你改口 I'm a Chinese! 他就明白了!
然后就是一句经典台词:
他明白了,你明白了么?
#6
一样,只是在mysql中用utf8而已,就是指代一种编码
#7
接楼上的,一样,只是在mysql中用utf8表示utf-8而已,就是指代一种编码。
在php中mysql_query("set names utf-8");因为mysql中定义的是utf8而不是utf-8,所以这条语句是执行不成功的,效果和mysql_query("set names test")一样,所以你存储和获得的mysql编码并没有改变。改为
mysql_query("set names utf8");就行了。
在php中mysql_query("set names utf-8");因为mysql中定义的是utf8而不是utf-8,所以这条语句是执行不成功的,效果和mysql_query("set names test")一样,所以你存储和获得的mysql编码并没有改变。改为
mysql_query("set names utf8");就行了。
#8
mysql_query("set names gb2312"); 就是告诉mysql SELECT 出来的数据转换成gb2312.
如果mysql存的是utf8,就会自动转换成gb2312.
如果mysql存的是utf8,就会自动转换成gb2312.
#9
都是一个啊,不同的地方叫法不一样
#10
学习了~
#11
写mysql程序员写法的一个错误 少写了了“-”还得我们全中国人都得根着他写。
#12
以后你牛了,写点东西,让在家用用,,你也可以写成 8utf 8ftu 等等
#13
#14
MySQL 内流满面
#15
呵呵,,,,,,,
我只有这样认为了。
我只有这样认为了。
#16
在mysql中用utf8表示utf-8编码,其中一个很重要的原因可能是:"-"号同样代表了减法运算,而且sql语句中使用到"-"号的时候应该也很多.为了在解析sql语句时,不耗费过多的时间,这样做是有道理的。
(以上仅个人看法,没有证实过)
(以上仅个人看法,没有证实过)
#17
....
#18
还真没怎么注意这个问题
#19
准确地说,你说的这个事情跟 PHP 基本上没有关系,这只是 mysql 的事情。
mysql 只认识 "utf8",不认识 "utf-8",这个只要搞清楚就好了。在自然语言中,这两者的含义没有什么特别的区别。
同上。
这个是最没有什么可奇怪的,mysql 的 set names 命令的作用经常被误解,所以你会觉得奇怪。
set names 命令是用于“客户端告诉 mysql 服务器说:下面我要用 xxx 编码方式跟你说话了,你也要用这种编码方式跟我说话”。所以,这里指定的编码方式跟“数据库表的存储编码方式”没有任何关系,mysql 会替你把所需要的编码转换都做好。
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具, 分享给大家,欢迎 技术交流 :)
#20
计算机都是C语言,不同的编程,代码的命名方式不同。
#21
+++
#22
数据库是utf8 其它地方一般是utf-8
#23
过来看看喽!!!
跟着大家学习一下
跟着大家学习一下
#24
学习了 关注下
#25
MYSQL里没有UTF-8一说,只有UTF8;
HTML里没有UTF8一说,只有UTF-8。
HTML里没有UTF8一说,只有UTF-8。
#26
区别就是mysql里面是utf8,而其他编码基本是utf-8。
#27
关注下,学习了
#28
#29
mark~
#30
像这样连楼主自己都不搭理的问题
还这样踊跃回帖,这只能说明 php 已经没落了
还这样踊跃回帖,这只能说明 php 已经没落了
#1
区别:
mysql> set names utf-8;
ERROR 1115 (42000): Unknown character set: 'utf'
mysql> set names utf8;
Query OK, 0 rows affected (0.11 sec)
mysql> set names utf-8;
ERROR 1115 (42000): Unknown character set: 'utf'
mysql> set names utf8;
Query OK, 0 rows affected (0.11 sec)
#2
那么是否是说在mysql中utf8也就是我们平时说的utf-8(即英文用一个字节表示,中文用3个字节表示?)
如果是这样的话,那么我的表的编码为utf8,$temp=mysql_query("set names gb2312"),之后查询数据并输出结果,不会是乱码,而gb2312是一个汉字2个字节,想请问你一下,此时的编码是如果转换过来的呢,难道mysql_query()这个函数有转换这个功能不成? 还有如果不设置mysql_query("set names gb2312")这句话的时候,在php脚本中读取和插入数据默认的用的是什么编码?
如果是这样的话,那么我的表的编码为utf8,$temp=mysql_query("set names gb2312"),之后查询数据并输出结果,不会是乱码,而gb2312是一个汉字2个字节,想请问你一下,此时的编码是如果转换过来的呢,难道mysql_query()这个函数有转换这个功能不成? 还有如果不设置mysql_query("set names gb2312")这句话的时候,在php脚本中读取和插入数据默认的用的是什么编码?
#3
好你没什么区别。你再看一下,你表里的字段的整理一项用的是什么编码,是否是:utf8-gen**** 之类的。
#4
是没有区别的utf8-bin这些仅仅是整理集,用于说明查询和存储时的排序方式比如utf8-bin就是一个区分大小写的按照ascii码的顺序大小依次排列的整理集
#5
utf8 和 utf-8 意义一样,表示不一样而已!
比方你跟一个英国人(不懂汉语的)说汉语:我是中国人!他不明白!
然后你改口 I'm a Chinese! 他就明白了!
然后就是一句经典台词:
他明白了,你明白了么?
比方你跟一个英国人(不懂汉语的)说汉语:我是中国人!他不明白!
然后你改口 I'm a Chinese! 他就明白了!
然后就是一句经典台词:
他明白了,你明白了么?
#6
一样,只是在mysql中用utf8而已,就是指代一种编码
#7
接楼上的,一样,只是在mysql中用utf8表示utf-8而已,就是指代一种编码。
在php中mysql_query("set names utf-8");因为mysql中定义的是utf8而不是utf-8,所以这条语句是执行不成功的,效果和mysql_query("set names test")一样,所以你存储和获得的mysql编码并没有改变。改为
mysql_query("set names utf8");就行了。
在php中mysql_query("set names utf-8");因为mysql中定义的是utf8而不是utf-8,所以这条语句是执行不成功的,效果和mysql_query("set names test")一样,所以你存储和获得的mysql编码并没有改变。改为
mysql_query("set names utf8");就行了。
#8
mysql_query("set names gb2312"); 就是告诉mysql SELECT 出来的数据转换成gb2312.
如果mysql存的是utf8,就会自动转换成gb2312.
如果mysql存的是utf8,就会自动转换成gb2312.
#9
都是一个啊,不同的地方叫法不一样
#10
学习了~
#11
写mysql程序员写法的一个错误 少写了了“-”还得我们全中国人都得根着他写。
#12
以后你牛了,写点东西,让在家用用,,你也可以写成 8utf 8ftu 等等
#13
#14
MySQL 内流满面
#15
呵呵,,,,,,,
我只有这样认为了。
我只有这样认为了。
#16
在mysql中用utf8表示utf-8编码,其中一个很重要的原因可能是:"-"号同样代表了减法运算,而且sql语句中使用到"-"号的时候应该也很多.为了在解析sql语句时,不耗费过多的时间,这样做是有道理的。
(以上仅个人看法,没有证实过)
(以上仅个人看法,没有证实过)
#17
....
#18
还真没怎么注意这个问题
#19
准确地说,你说的这个事情跟 PHP 基本上没有关系,这只是 mysql 的事情。
mysql 只认识 "utf8",不认识 "utf-8",这个只要搞清楚就好了。在自然语言中,这两者的含义没有什么特别的区别。
同上。
这个是最没有什么可奇怪的,mysql 的 set names 命令的作用经常被误解,所以你会觉得奇怪。
set names 命令是用于“客户端告诉 mysql 服务器说:下面我要用 xxx 编码方式跟你说话了,你也要用这种编码方式跟我说话”。所以,这里指定的编码方式跟“数据库表的存储编码方式”没有任何关系,mysql 会替你把所需要的编码转换都做好。
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具, 分享给大家,欢迎 技术交流 :)
#20
计算机都是C语言,不同的编程,代码的命名方式不同。
#21
+++
#22
数据库是utf8 其它地方一般是utf-8
#23
过来看看喽!!!
跟着大家学习一下
跟着大家学习一下
#24
学习了 关注下
#25
MYSQL里没有UTF-8一说,只有UTF8;
HTML里没有UTF8一说,只有UTF-8。
HTML里没有UTF8一说,只有UTF-8。
#26
区别就是mysql里面是utf8,而其他编码基本是utf-8。
#27
关注下,学习了
#28
#29
mark~
#30
像这样连楼主自己都不搭理的问题
还这样踊跃回帖,这只能说明 php 已经没落了
还这样踊跃回帖,这只能说明 php 已经没落了