仁者无忧,智者无虑,勇者无惧 [逍遥群:65491358]

在UTF-8中,一个中文字并不是2个字节

上一篇 / 下一篇  2008-05-14 10:24:09 / 个人分类:网站开发

UTF-8是一种Unicode编码方式。他是一种不等幅的编码方式,UTF-8编码的字节长度取决于所要编码的字符在ISO   10646中的编码值。在UTF-8中,不同的字符,可能需要1-6个字节来进行编码。对于单字节的UTF-8编码,该字节的最高位为0,其余7位用来对字符进行编码(等同于ASCII码)。对于多字节的UTF-8编码,如果编码包含n个字节,那么第一个字节的前n位为1,第一个字节的第n+1位为0,该字节的剩余各位用来对字符进行编码。在第一个字节之后的所有的字节,都是最高两位为"10",其余6位用来对字符进行编码。  
   
  例如“未”字,其编码为:0xE69CAA,转换为二进制为:1110   0110   1001   1100   1010   1010,从这里可以看出,该字在UTF-8编码下本身就是3个字节。  
   
  所以,在UTF-8中,一个中文字并不是2个字节,而是超过了两个字节。并不是所有的中文字最后结尾都是0xAA。  
   
所以,你在社区和论坛发帖时,如果弹出窗口说超过多少字符,并不是除2就是正确的汉字数。

TAG: UTF-8 汉字编码

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-09-05  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 3652
  • 日志数: 66
  • 图片数: 3
  • 书签数: 2
  • 建立时间: 2007-10-26
  • 更新时间: 2008-08-07

RSS订阅

Open Toolbar