__mad, не в теме, это не то что нужно
Хм, и почему же это не подходит?
вот например создаем файлы с разными кодировками:
$iconv -f UTF-8 -t 866 <(echo Привет) > enc-866
$iconv -f UTF-8 -t WINDOWS-1251 <(echo Привет) > enc-windows-1251
$echo Привет > enc-utf-8
Теперь запускаем следующий код (использующий эту либу):
Код:
import glob
from chardet.universaldetector import UniversalDetector
detector = UniversalDetector()
for filename in glob.glob('enc-*'):
print filename.ljust(60),
detector.reset()
for line in file(filename, 'rb'):
detector.feed(line)
if detector.done: break
detector.close()
print detector.result
$ python enc.py
enc-866 {'confidence': 0.98999999999999999, 'encoding': 'IBM866'}
enc-windows-1251 {'confidence': 0.98999999999999999, 'encoding': 'windows-1251'}
enc-utf-8 {'confidence': 0.98999999999999999, 'encoding': 'utf-8'}
Как видно, скрипт (точней либа) правильно определила разные кодировки.