unicode编码范围

00000000-0000007F的字符,用单个字节来表示;

00000080-000007FF的字符用两个字节表示 (中文的编码范围)

00000800-0000FFFF的字符用3字节表示
 

转换规则 

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

相关文章:

  • 2021-05-23
  • 2021-11-10
  • 2022-01-31
  • 2022-12-23
  • 2021-06-22
  • 2021-10-21
  • 2021-10-01
猜你喜欢
  • 2022-12-23
  • 2021-10-23
  • 2023-01-01
  • 2021-09-25
  • 2021-10-17
  • 2022-01-09
相关资源
相似解决方案