汉字'我'
Unicode编码是 0x6211 0110
0010
00
010001
UTF8编码是 0xe68891 1110
0110
10
001000
100
010001
oxc0 11000000
0xE0 11100000
| Unicode符号范围 | UTF-8编码方式
n | (十六进制) | (二进制)
---+----------------------- -----------+--------------------------------------------------------------------------
1 | 0x00 - 0x7F | 0zzzzzzz
2 | 0x80 - 0x7FF | 110yyyyy 10zzzzzz
3 | 0x800 - 0xFFFF | 1110xxxx 10yyyyyy 10zzzzzz
--------------------------------------------------------------------------------------------------------------------
4 | 0x10000 - 0x1FFFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5 | 0x200000 - 0x3FFFFFF | 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6 | 0x4000000 - 0x7FFFFFFF | 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
表 UTF-8的编码规则
一:unicode转utf8
'我'的unicode编码0x6211,二进制为:01100010 00010001
将二进制形式分割成3段为0110 001000
010001
(分别是高4位、中间的6位、最后的低6位)
unicode转utf8只需要这3段分别填入1110xxxx 10yyyyyy 10zzzzzz中的xxxx yyyyyy zzzzzz
得utf8编码是0xe6889,二进制为: 11100110 10001000 100010001
int UnicodeToUtf8(char* pInput,char *pOutput)
{
int