您的位置:首页 > 其它

UTF8 编码转换 腾讯

2015-12-12 13:59 309 查看
UTF-8是现在流行的编码方式,下面是RFC2279对UTF-8编码规则的规定

UCS-4 range (hex.)    UTF-8 octet sequence (binary)
0000 0000-0000 007F   0xxxxxxx
0000 0080-0000 07FF   110xxxxx 10xxxxxx
0000 0800-0000 FFFF   1110xxxx 10xxxxxx 10xxxxxx

0001 0000-001F FFFF   11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0020 0000-03FF FFFF   111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0400 0000-7FFF FFFF   1111110x 10xxxxxx ... 10xxxxxx


根据这个规则,中文字符‘我’的unicode值为0X6211,utf-8编码之后为0XE68891。 请回答以下问题:

A)英文字符‘a’,其unicode的十六进制值为0X61,则其UTF-8编码后的十六进制值为 ?

B)中文字符‘腾’,其unicode的十六进制值为0X817E,则其UTF-8编码后的十六进制值为 ?

C)中文字符‘讯’,其unicode值经过UTF-8编码之后为0XE8AEAF,则请问其unicode的十六进制值是 ?

A、0X61在0X00-0X7F之间,所以和ASCII编码完全相同,所以UTF-8编码后的值还是0X61。

B、0X817E在0X0800-0XFFFF之间,使用了3字节模版 1110xxxx 10xxxxxx 10xxxxxx,将0X817E写成二进制1000 0001 0111 1110,用这个比特流依次替代模版中的x,得到11101000 10000101 10111110,即E885BE。

C, 中文字符’讯’的unicode经过UTF-8编码后的十六进制0XE8AEAF,这是求的逆过程,首先转化为二进制:1110 1000 1010 1110 1010 1111,从第一个4位1110可以看出落在0800-FFFF区间 ,1 110 1000 1010 1110 1010 1111;所以unicode的十六进制就是8BAF.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: