首页 > 如何使用python将其他编码格式的字符批量decode

如何使用python将其他编码格式的字符批量decode

python中如果要处理中文问题,通常要注意编码问题。大致的思路是

各种格式(如utf_8)--->unicode--->各种格式(如utf_8) 

一般来说,只有化成同一种编码格式才能进行一些操作,如判断、查找等。
所以在操作的时候,一般会将输入字符decode成unicode的再操作。

a='你好'#utf-8格式的
b=a.decode('utf-8')#b是unicode的了。

现在的问题是:
如果我不清楚a的编码格式,或者知道a的编码格式有很多种,这种情况下如何解码?
有没有一种统一的函数,可以decode任何格式的字符,而不用知道这个字符的编码方式i?


楼上正解。chardet基本够用了。


import chardet


def decode(line):
    '''
    把str转换为unicode
    '''
    if isinstance(line, unicode):
        return line
    result = chardet.detect(line)
    if result['confidence'] > 0.95:
        return line.decode(result['encoding'])
    else:
        raise Exception('unknow encoding')

print repr(decode(u'我是一只小小鸟'))

看看chardet

【热门文章】
【热门文章】