Добрый день Считываю utf8-файл и вывожу в консоль. При попытке вывести букву «И» возникает ошибка:
Воспроизводится на вот таком примере:
Первое слово выводится нормально, а на втором — ошибка. Никак не могу найти способ побороть проблему.
UPD: Видимо я описал проблему слишком широко, исправляюсь:
Как конвертировать «И» из utf-8 в cp1251? Для «А» всё работает, а для «И» — нет.
2 ответа 2
Чтобы напечатать файл, содержащий текст в utf-8 кодировке, в консоль (аналог type filename в cmd.exe ) в Питоне:
Если хочется напечатать Юникодные символы, которые непредставимы в chcp кодировке (OEM code page), то см. Как из Python вывести на Windows-консоль строку в Юникоде?
Если у вас файл записан в кодировке utf-8, то и декодировать нужно из кодировки utf-8:
Когда вы записываете текст в файл в какой-то кодировке, вы фактически превращаете внутреннее представление текста в байты в указанной кодировке. Чтобы правильно декодировать эти байты обратно во внутреннее представление, при декодировании нужно указать ту же кодировку, что и при записи.
Подскажите как правильно прочитать файл? Уже всю голову сломал.
- Вопрос задан более трёх лет назад
- 3209 просмотров
видно что происходит попытка перекодировать из любимой винодовой cp1251 🙂 а файл видать в UTF8.
попробуй открыть как ‘rb’ и конвертировать построчно
а вообще хорошо бы знать, в какой кодировке файл.
Когда я использую pipreqs, я имею эту проблему, я использую анаконду и русскую версию Windows.
Вы можете передать аргумент кодирования , чтобы pipreqs таким образом , чтобы он знать , какую кодировку использовать для открытия файлов.
Python3 файлы обычно кодируются как UTF-8 , так что выполнить
pipreqs —encoding=utf8 C:Users
ootDesktop
esumes
Источник: