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

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

Сообщение Anonymous »

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

Код: Выделить всё

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

Код: Выделить всё

print(some_string)
# => UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 180: ordinal not in range(128)

print(some_string.decode("utf-8"))
# => AttributeError: 'str' object has no attribute 'decode'

sys.stdout.buffer.write(some_str)
# => TypeError: 'str' does not support the buffer interface

print(some_string.encode("cp1252").decode("utf-8"))
# => UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 180: invalid continuation byte

print(some_string.encode("cp1252"))
# => has the unfortunate result of printing b'' instead of just the string
Я ломаю голову. Я хотел бы напечатать строку, полученную из файла, так, как она там отображается, в cp1252. (В моем терминале, когда я делаю больше $file, эти символы отображаются в виде вопросительных знаков, поэтому мой терминал, вероятно, ASCII.)

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

Подробнее здесь: https://stackoverflow.com/questions/357 ... n-python-3

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