Хорошо, я хочу напечатать строку в моей консоли Windows XP. Есть несколько символов, которые не могут быть напечатаны консолью, поэтому мне нужно закодировать мой stdout.encoding, который является "cp437". но печатая закодированную строку, "ß" печатается как "\ xe1". после декодирования обратно в unicode и печати строки, я получаю вывод, который я хочу. но это несколько неправильно. как правильно напечатать строку и получить? для непечатаемых символов?
>>>var
'Bla \u2013 großes'
>>>print(var)
UnicodeEncodeError: 'charmap' codec can't encode character '\u2013'
>>>var.encode('cp437', 'replace')
b'Bla ? gro\xe1es'
>>>print(var.encode('cp437', 'replace'))
b'Bla ? gro\xe1es'
>>>var.encode('cp437', 'replace').decode('cp437')
'Bla ? großes'
>>>print(var.encode('cp437', 'replace').decode('cp437'))
Bla ? großes
изменить: @Mark Ransom: поскольку я печатаю много, это делает код довольно раздутым, я чувствую:/
@eryksun: именно то, что я искал. спасибо большое!