Скорее всего, ваш редактор не настроен на вывод в формате UTF-8.Установка его для вывода UTF-8 должна решить проблему.
В качестве альтернативы используйте экранирование Юникода:
print u"D\u00FCsseldorf"
Обратите внимание, что строковые литералы вPython 2.x должен иметь префикс u
(для юникода).Нефиксированные литералы (например, "Düsseldorf"
) генерируют str
объекты, которые являются байтовыми массивами (несмотря на имя), а не строки.Следовательно, в Python 2.x с правильно настроенным редактором вы хотите:
print u"Düsseldorf"
В Python 3.x ситуация была исправлена, позволив str
объектам представлять, ну, в общем, строки и вводитьтип bytes
для байтовых массивов, как в b'D\xc3\xbcsseldorf'
.