@Noname45

Вывод битых символов кириллицы в консоли?

При чтении файла его содержимое выводится в консоль, но при этом, если файл содержит не только латиницу, но и кириллицу, то некоторые буквы выводятся битыми.
Что-то вроде такого:
'‡елЮнаЯ лужайка за домом' или '‘иний мЯчик под кроватью'

from pathlib import Path

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
with path.open() as input_file:
buffer: str = input_file.read()

print(f"{buffer = }")

причём, если убрать sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
то вместо кириллицы выйдут каракули
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019
Bigdata Engineer
Автор покажи что у тебя показывает
chcp
или
echo $LANG
И проверь что кодовая страница текстового файла совпадает с ожидаемым.
Вобщем это скорее всего и будет ответ на твой вопрос.
Ответ написан
@ressiwage
скорее всего у тебя миксуется ascii и юникод, юникод -- кириллица, ascii -- латиница. юникод занимает 2 байта, ascii -- один, вот они и наслаиваются друг на друга.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы