Unicode中文编码范围是0x3400~9fff,总数是0x6bff
GB2312中文编码范围是0xA1A0~F7FF,总数是0x565f
UTF-8与Unicode的转换规则:
U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
第一个字节高位有几个1就代表此字符由几个字节组成
UTF-8编码为E6,B1,89,二进制为11100110 10110001 10001001
根据3字节结构即:1110-0110 10-110001 10-001001,提取出来即0110 1100 0100 1001,最后得到Unicode码:6C49,是“汉”字。
C语言代码
int buf[250];
int Unicode[100];
int GB2312[100];
UnicodeLen = 0;
for(i = 0; i < len; i++)
{
if