대용량 (약 기가 바이트)의 플랫 파일 데이터베이스를 디코딩했는데, 문자 인코딩을 전혀 사용하지 않았습니다. 파이썬 모듈 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는 매우 높은 자신감을 인코딩의 선택입니다보고하지만 '아무튼 디코딩 ... 다른 현명한 접근법이 있습니까?
해킹의 약간, 특히 따옴표로 표시된 부분에서만 탐지를 시도하면 매우 낮은 신뢰도로 실제로 전체 라인을 디코딩하는 인코딩 (ISO-8859-2)이 반환됩니다. 나는 일반화를 찾고 있지만 전체 데이터베이스에 적용 할 수 있습니다. – SingleNegationElimination