Здравствуйте, уважаемые!
Написал приложение, которое работает как широкоизвестный LKFManager020
для записи скаченных rar-файлов книг с ресурса av3715.ru и с сайта
Самарской библиотеки на карту памяти.
Приложение работает отлично, но вдруг решил протестировать его на
журнале диалог и неприятно удивился, когда половина книг, отображаемых в
приложении отображаются как кракозябры.
Для тестирования написал программку, которая показывает кодировку
LGK-файлов.
Оказалось, где текстовый редактор показывает кодировку 866 (oem -
русская), python показывает IBM866, а иногда вообще какие-то вычурные
кодировки.
Для определения использовал модуль chardet и метод UniversalDetector, а
также попробовал метод detect(), который ошибок показывает ещё больше.
Переписал своё приложение таким образом:
1. В режиме чтения бинарного файла 'rb' (в текстовом вообще открываться
не хочет) открываю lgk-файл, читаю первую строку и определяю кодировку.
2. Второй раз Открываю lgk-файл в режиме чтения, но с указанием
определённой на предыдущем шаге кодировки.
Ситуация поменялась, из 27 книг, корректно отображаются больше 20, но
по-прежнему файлы с кодировками Windows-1251 или 866 (oem - русская) оба
метода python определяют кодировку как Windows-1253 болгариен, IBM866
или скажем, MacCyrillic.
Подскажите, что-нибудь с этим можно поделать?? Может быть всё упирается
в возможности модуля chardet?
с уважением
Грызунов Александр, Самара