UTF8 编码转换 腾讯

来源:互联网 发布:淘宝开企业店铺要纳税 编辑:程序博客网 时间:2024/06/06 07:18

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.

这里写图片描述

0 0