zoukankan      html  css  js  c++  java
  • 中文字符 unicode转utf-8函数 python实现

    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

  • 相关阅读:
    「SHOI2015」脑洞治疗仪
    LOJ 数列分块入门 8
    CF932F Escape Through Leaf
    NOIP2021游记总结
    [HEOI2016/TJOI2016]序列
    【模板】动态树(Link Cut Tree)
    LG P2839 [国家集训队]middle
    JZOJ 7377.欢乐豆
    JZOJ 7392. 【2021.11.17NOIP提高组联考】数 (ds)
    LOJ 数列分块入门 6
  • 原文地址:https://www.cnblogs.com/zqiang3/p/3664026.html
Copyright © 2011-2022 走看看