Печать на стандартный вывод с кодировкой в Python 3 ⇐ Python
-
Anonymous
Печать на стандартный вывод с кодировкой в Python 3
У меня есть программа на 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 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.)
Хотелось бы разъяснений! Спасибо!