печать "Дюссельдорф" с Python - PullRequest
1 голос
/ 15 ноября 2011

Я пытаюсь использовать строку Дюссельдорф. Когда я это делаю:

# -*- coding: utf-8 -*-
print "Düsseldorf"

печатает странные символы. Может ли кто-нибудь помочь мне, пожалуйста?

Большое спасибо.

Ответы [ 2 ]

6 голосов
/ 15 ноября 2011
2 голосов
/ 15 ноября 2011

Скорее всего, ваш редактор не настроен на вывод в формате 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'.

...