Python 强行utf-8解码

来源:互联网 发布:三凌plc编程软件下载 编辑:程序博客网 时间:2024/05/16 17:12

不知道之前Python能不能将一串二进制数据强行解码,但是我使用python3.5没找到这个功能,就自己写了一个,我不是很了解字符集方面的知识,可能存在错误

'''2016.7.5强行解码输入:    context:二进制数据    method:解码的方式输出:    掺杂解码结果和未解码的数据'''import sysdef forcedecode(context,method = 'utf-8'):       pos = 0    maxpos = len(context)    if maxpos == 0:        print('数据长度为0')        return None    result = ''    while pos < maxpos:        try:            ##单个数据解码            str1 = context[pos:pos+1]            result += str1.decode(method)            pos += 1        except:            try:                ##两个数据解码                str2 = context[pos:pos+2]                result += str2.decode(method)                pos += 2            except:                try:                    ##三个数据解码                    str3 = context[pos:pos+3]                    result += str3.decode(method)                    pos += 3                except:                    try:                        ##解码失败,将数据转换为字符串                        result += context[pos:pos+1].hex()                        pos += 1                    except:                        (ErrorType, ErrorValue, ErrorTB) = sys.exc_info()                        print("forcedecode: ", ErrorValue)                        break    return resultif __name__ == '__main__':    context = '0030E7A4BCE9879100E7A4BC99'    print(forcedecode(context,'utf-8'))
0 0