unicode编码范围
00000000-0000007F的字符,用单个字节来表示;
00000080-000007FF的字符用两个字节表示 (中文的编码范围)
转换规则
0000~007F 1字节 0xxxxxxx
0080~07FF 2字节 110xxxxx 10xxxxxx
0800~FFFF 3字节 1110xxxx 10xxxxxx 10xxxxxx
4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
python实现
输入: 中文字符的unicode编码,int型
输出: utf-8编码, str类型
如 '张',unicode编码为0x5f20,输入为0x5f20,输出为0xe5bca0
def unicode_to_utf8(src):
ref = 0xe08080
result = ref
a = src & 0x3f //取最后六位
result = result | a //将最后六位放在ref最后六位的空位置
src = src >> 6
a = src & 0x3f //取接下来的六位
result = result | (a << 8) //放在ref对应的六个位置
src = src >> 6 //保留最后四位
result = result | (src << 16) //放在ref对应的四个位置
return "%x" % result