16进制转中文

16进制转中文

本人参考:https://blog.csdn.net/weixin_41449756/article/details/100652150

思路:

  找到 \\x开头的所有字符,每3个转成一个中文,使用str.decode("hex")一个字一个字的转换

code:

def str_to_chinese(var):
    not_end = True
    while not_end:
        start1 = var.find("\\x")
        # print start1
        if start1 > -1:
            str1 = var[start1 + 2:start1 + 4]
            print str1
            start2 = var[start1 + 4:].find("\\x") + start1 + 4
            if start2 > -1:
                str2 = var[start2 + 2:start2 + 4]

                start3 = var[start2 + 4:].find("\\x") + start2 + 4
                if start3 > -1:
                    str3 = var[start3 + 2:start3 + 4]
        else:
            not_end = False
        if start1 > -1 and start2 > -1 and start3 > -1:
            str_all = str1 + str2 + str3
            # print str_all
            str_all = str_all.decode('hex')

            str_re = var[start1:start3 + 4]
            # print str_all, "   " ,str_re
            var = var.replace(str_re, str_all)
    # print var.decode('utf-8')
    return var


if __name__ == "__main__":
    var1 = '\xE6\x97\xA0\xE6\x9D\x83\xE9\x99\x90'
    var2 = '\\xE7\\xBD\\x91\\xE7\\xAB\\x99\\xE8\\xAE\\xBF\\xE9\\x97\\xAE\\xE6\\x8A\\xA5\\xE9\\x94\\x99'
    var3 = '\xE7\xBD\x91\xE7\xAB\x99\xE8\xAE\xBF\xE9\x97\xAE\xE6\x8A\xA5\xE9\x94\x99'
    var4 = '\\xE8\\xBF\\x90\\xE7\\xBB\\xB4 - \\xE7\\xAB\\x99\\xE7\\x82\\xB9'

    # print var1
    # print var2
    # print var3

    print str_to_chinese(var4)

猜你喜欢

转载自www.cnblogs.com/zty1304368100/p/13175474.html