Печать на стандартный вывод с кодировкой в ​​Python 3Python

Программы на Python
Anonymous
Печать на стандартный вывод с кодировкой в ​​Python 3

Сообщение Anonymous »


У меня есть программа на Python 3, которая считывает некоторые строки из файла в кодировке Windows-1252:

с open(file, 'r',coding="cp1252") как file_with_strings: # сохраняем несколько строк Что я позже хочу записать в стандартный вывод. Я пытался сделать:

print(some_string) # => UnicodeEncodeError: кодек 'ascii' не может закодировать символ '\xe9' в позиции 180: порядковый номер не находится в диапазоне (128) print(some_string.decode("utf-8")) # => AttributeError: объект 'str' не имеет атрибута 'decode' sys.stdout.buffer.write(some_str) # => TypeError: 'str' не поддерживает интерфейс буфера print(some_string.encode("cp1252").decode("utf-8")) # => UnicodeDecodeError: кодек 'utf-8' не может декодировать байт 0xe9 в позиции 180: недопустимый байт продолжения печать(some_string.encode("cp1252")) # => имеет неудачный результат: печатается b'' вместо простой строки Я тут ломаю голову. Я хотел бы напечатать строку, полученную из файла, так, как она там отображается, в cp1252. (В моем терминале, когда я выполняю more $file, эти символы отображаются в виде вопросительных знаков, поэтому мой терминал, вероятно, является ascii.)

Хотелось бы разъяснений! Спасибо!

Вернуться в «Python»