charmap codec can t decode byte 0x98

Добрый день Считываю 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

Источник: computermaker.info

Понравилась статья? Поделиться с друзьями:
Ок! Компьютер
Добавить комментарий