私は大規模な(約ギガバイトの)フラットファイルデータベースをデコードしています。このデータベースは、文字エンコードを巧みに組み合わせています。pythonモジュールchardet
は、これまでのところ、エンコーディングを識別するのに良い仕事をしていますが、つまずきにぶつかった場合は...
In [428]: badish[-3]
Out[428]: '\t\t\t"Kuzey r\xfczgari" (2007) {(#1.2)} [Kaz\xc4\xb1m]\n'
In [429]: chardet.detect(badish[-3])
Out[429]: {'confidence': 0.98999999999999999, 'encoding': 'Big5'}
In [430]: unicode(badish[-3], 'Big5')
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
~/src/imdb/<ipython console> in <module>()
UnicodeDecodeError: 'big5' codec can't decode bytes in position 11-12: illegal multibyte sequence
chardetは、エンコーディングの選択について非常に高い信頼性を報告していますが、デコードしません...他に賢明なアプローチはありますか?