,utf8和utf-8有什么区别?

用户投稿 53 0

关于“php_utf8_utf16”的问题,小编就整理了【2】个相关介绍“php_utf8_utf16”的解答:

utf8和utf-8有什么区别?

本质上没有区别。“UTF-8”是标准写法,在Windows下边英文不区分大小写,所以也可以写成“utf-8”。“UTF-8”也可以把中间的“-”省略,写成“UTF8”。一般程序都能识别,但也有例外(如下文),为了严格一点,最好用标准的大写“UTF-8”。 在MySQL数据库中只能使用“utf8”   在MySQL的命令模式中只能使用“utf8”,不能使用“utf-8”,也就是说在PHP程序中只能使用“set names utf8(不加小横杠)”,如果你加了“-”此行命令将不会生效,但是在PHP中header时却要加上“-”,因为IE不认识没杠的“utf8”,原因 见下文。 在IE浏览器中只能使用“utf-8”   IE中如果使用了“utf8”,页面可能会 空白 或 显示为乱码。   但是在其它浏览器却是正常的,原因是因为:其它浏览器默认使用的是UTF-8的编码,如果无法识别页面的编码就会用默认的UTF-8来解码,但 是IE的默认编码是GB2312,所以默认的话就。。。。。(其它浏览器指“FireFox”、“Chrome”、“Opera”) 总结     【只有在MySQL中可以使用“utf-8”的别名“utf8”,但是在其他地方一律使用大写“UTF-8”。】   具体为:     在命令“mysql_query(set names utf8)”外一律用大写“UTF-8”。 --EOF--

UTF16是什么意思?

UTF-16是Unicode字符编码五层次模型的第三层:字符编码表(Character Encoding Form,也称为 "storage format")的一种实现方式。即把Unicode字符集的抽象码位映射为16位长的整数(即码元)的序列,用于数据存储或传递。Unicode字符的码位,需要1个或者2个16位长的码元来表示,因此这是一个变长表示。

UTF-16是Unicode的其中一个使用方式。 UTF是 Unicode Translation Format的缩写,即把Unicode转做某种格式的意思,UTF-16对每一个Unicode码位使用16位元它在Unicode基本多文种平面定义的字符(无论是拉丁字母、汉字或其他文字或符号),一律使用2字节储存。

而在辅助平面定义的字符,会以代理对(surrogate pair)的形式,以两个2字节的值来储存。UTF-16比起UTF-8,好处在于大部分字符都以固定长度的字节(2字节)储存,但UTF-16却无法兼容于ASCII编码。

c#中默认的就是UTF-16,所以在处理c#字符串的时候只能是byte,stream等方式去处理其编码方法是:1如果字符编码U小于0x10000,也就是十进制的0到65535之内,则直接使用两字节表示;记得采纳啊

到此,以上就是小编对于“php_utf8_utf16”的问题就介绍到这了,希望介绍关于“php_utf8_utf16”的【2】点解答对大家有用。

抱歉,评论功能暂时关闭!