我正在解碼一個大的(大約一個千兆字節)平面文件數據庫,它將字符編碼混合在一起。在Python模塊chardet
是做得很好,到目前爲止,標識編碼,但如果打了一個絆腳石......chardet在Big5上顯然是錯誤的
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的報告非常高的信心,這是編碼的選擇,但它不」 t解碼...還有其他明智的方法嗎?
有點黑客攻擊,特別是在引用部分嘗試檢測,返回一個編碼(它恰好是ISO-8859-2),具有非常低的置信度,實際上可以解碼整行。我在尋找一個泛化,但我可以適用於整個數據庫。 – SingleNegationElimination 2011-01-19 04:29:22