2

bytes.decode文字列とバイトを与えることは知っていstring.encodeますが、正しいものencodingが使用されている場合のみです。

次を使用してエンコードされたバイトオブジェクトがあるとgb18030
big5ます。

>>name = '深入 damon'
>>b1 = name.encode('gb18030')
>>> b1.decode('big5')
UnicodeDecodeError: 'big5' codec can't decode byte 0xc8 in position 2: illegal multibyte sequence

bytesオブジェクトからエンコーディングを見つける方法はありますか? ドキュメント
でこの点に関して有用な API を見つけることができませんでした。python3

4

2 に答える 2

7

chardetパッケージを使用できます。このチュートリアル を読んでください。


Ubuntu を使用している場合:

sudo apt-get install python3-chardet

ピップを使用している場合:

pip install chardet2 
于 2013-05-31T03:48:59.083 に答える