UTF-8 code page

参考资料:http://zh.wikipedia.org/wiki/UTF-8


UTF-8是一种针对Unicode的可变长度字符编码,也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部分修改,即可继续使用。

UTF-8编码规律:

Char. number range  |       UTF-8 octet sequence

     (hexadecimal)    |              (binary)

  --------------------+---------------------------------------------

  0000 0000-0000 007F | 0xxxxxxx

  0000 0080-0000 07FF | 110xxxxx 10xxxxxx

  0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx

  0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

  0020 0000-03FF FFFF | 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

  0400 0000 -7FFF FFFF| 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx10xxxxxx

编码规律:

(1)对于ASCII字符的编码使用一个字节进行编码,最高位为0.

(2)大于ASCII码的,就会有上面的第一字节的前几位表示该unicode字符的长度,比如110xxxxx,前三位告诉我们这是个2Byte的UNICODE字符;1110xxxx是个3Byte的unicode字符,依次类推;剩余字节的最高两位都为10;

(3)X位的填充,按照字符的unicode编码格式,从最低位开始依次往上填充,缺省的以0填充。

注:2003年11月UTF-8被RTF3629重新规范,只能使用原来Unicode定义的区域,U+0000到U+10FFFF。根据这些规范,以下字节值将无法出现在合法UTF-8串行中:

编码(二进制 编码(十六进制 注释
1100000xC0, C1过长编码:双字节串行的头字节,但码点<= 127
1111111xFE, FF无法达到:7或8字节串行的头字节
111110xx
1111110x
F8, F9, FA, FB, FC, FDRFC 3629规范:5或6字节串行的头字节
11110101
1111011x
F5, F6, F7RFC 3629规范:码点超过10FFFF的头字节


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值