锁定老帖子 主题:研究了一下字符编码
精华帖 (0) :: 良好帖 (5) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-25
whitesock 写道 jojo_java 写道 yangguo 写道 utf-8太恶心,中文用三字节,还是使用gbk吧。多国语言支持通常都是一种过度设计与奢侈。
谁跟你说的一定是三个啊 谁跟你说不是? 一直都不是,参考 http://en.wikipedia.org/wiki/UTF-8 引用 UTF-8 (8-bit UCS/Unicode Transformation Format) is a variable-length character encoding for Unicode. It is able to represent any character in the Unicode standard, yet is backwards compatible with ASCII. For these reasons, it is steadily becoming the preferred encoding for e-mail, web pages,[1][2] and other places where characters are stored or streamed. UTF-8 encodes each character (code point) in 1 to 4 octets (8-bit bytes), with the single–octet encoding used only for the 128 US-ASCII characters. |
|
返回顶楼 | |
发表时间:2010-06-26
hozaka 写道 whitesock 写道 jojo_java 写道 yangguo 写道 utf-8太恶心,中文用三字节,还是使用gbk吧。多国语言支持通常都是一种过度设计与奢侈。
谁跟你说的一定是三个啊 谁跟你说不是? 一直都不是,参考 http://en.wikipedia.org/wiki/UTF-8 引用 UTF-8 (8-bit UCS/Unicode Transformation Format) is a variable-length character encoding for Unicode. It is able to represent any character in the Unicode standard, yet is backwards compatible with ASCII. For these reasons, it is steadily becoming the preferred encoding for e-mail, web pages,[1][2] and other places where characters are stored or streamed. UTF-8 encodes each character (code point) in 1 to 4 octets (8-bit bytes), with the single–octet encoding used only for the 128 US-ASCII characters. 你再仔细看看吧 |
|
返回顶楼 | |
发表时间:2010-06-26
jojo_java 写道
yangguo 写道
utf-8太恶心,中文用三字节,还是使用gbk吧。多国语言支持通常都是一种过度设计与奢侈。
谁跟你说的一定是三个啊
jojo_java兄弟,看书要仔细点。
utf8的编码集中,汉字是3个字符。
utf-8是1-4个字节的变长编码:
· 基本拉丁字母、数字和标点符号使用一个字节。 · 大多数的欧洲和中东手写字母适合两个字节序列:扩展的拉丁字母(包括发音符号、长音符号、重音符号、低音符号和其它音符)、西里尔字母、希腊语、亚美尼亚语、希伯来语、阿拉伯语、叙利亚语和其它语言。 · 韩语、中文和日本象形文字使用三个字节序列。 |
|
返回顶楼 | |
发表时间:2010-06-26
xiaolongfeixiang 写道
jojo_java 写道
yangguo 写道
utf-8太恶心,中文用三字节,还是使用gbk吧。多国语言支持通常都是一种过度设计与奢侈。
谁跟你说的一定是三个啊
jojo_java兄弟,看书要仔细点。
utf8的编码集中,汉字是3个字符。
utf-8是1-4个字节的变长编码:
· 基本拉丁字母、数字和标点符号使用一个字节。 · 大多数的欧洲和中东手写字母适合两个字节序列:扩展的拉丁字母(包括发音符号、长音符号、重音符号、低音符号和其它音符)、西里尔字母、希腊语、亚美尼亚语、希伯来语、阿拉伯语、叙利亚语和其它语言。 · 韩语、中文和日本象形文字使用三个字节序列。 我得好好看看了 |
|
返回顶楼 | |
发表时间:2010-06-26
无语了,谁告诉你utf-8是用三个字节表示中文啊,UTF-8编码是根据字符不同所占的长度也不同,从一个字节到四个字节不等
|
|
返回顶楼 | |
发表时间:2010-06-26
lei_1021 写道
无语了,谁告诉你utf-8是用三个字节表示中文啊,UTF-8编码是根据字符不同所占的长度也不同,从一个字节到四个字节不等
不要总是“谁告诉你”、“一直都是”、“一直都不是”,这样不是在讨论,不会有结果的。
看证据:
http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/charset.html#charset-metadata
10.5节,Unicode支持。
|
|
返回顶楼 | |
发表时间:2010-06-27
对于汉字来说,utf-8基本是三个字节表示的
System.out.println("汉字".getBytes("UTF-8").length); System.out.println("汉字".getBytes("GBK").length); 上面的代码输出是6和4。 有疑问的可以用任意的中文试试。 程序员对程序有疑问时,请直接问电脑,不用自己猜。。。 |
|
返回顶楼 | |
发表时间:2010-06-28
whitesock 写道 jojo_java 写道 yangguo 写道 utf-8太恶心,中文用三字节,还是使用gbk吧。多国语言支持通常都是一种过度设计与奢侈。
谁跟你说的一定是三个啊 谁跟你说不是? 對於UTF-8編碼中的任意位元組B,如果B的第一位為0,則B為ASCII碼,並且B獨立的表示一個字元; 如果B的第一位為1,第二位為0,則B為一個非ASCII字元(該字元由多個位元組表示)中的一個位元組,並且不為字元的第一個位元組編碼; 如果B的前兩位為1,第三位為0,則B為一個非ASCII字元(該字元由多個位元組表示)中的第一個位元組,並且該字元由兩個位元組表示; 如果B的前三位為1,第四位為0,則B為一個非ASCII字元(該字元由多個位元組表示)中的第一個位元組,並且該字元由三個位元組表示; 如果B的前四位為1,第五位為0,則B為一個非ASCII字元(該字元由多個位元組表示)中的第一個位元組,並且該字元由四個位元組表示; 摘自 维基百科http://zh.wikipedia.org/zh-tw/UTF-8 |
|
返回顶楼 | |
发表时间:2010-06-29
UTF8是可变长的编码方式,这个想必大家都清楚,用不着摘个繁体维基百科。
|
|
返回顶楼 | |
发表时间:2010-06-29
IcedCoffee 写道 utf-8是3个字节?
我一直以为是2个... 我也一直以为是2个,但是前阵子使用Yii。里面验证字段长度,发现中文按3个字节计算的,当时有些纳闷但是也没深究。不求甚解啊! |
|
返回顶楼 | |