Пока все ответы правильные, я подумал, что предоставлю более полное лечение:
Самый простой способ представить не-ASCII символ в литерале скрипта - это использовать префикс u и экранирование u или U, например:
print u"Look \u0411\u043e\u0440\u0438\u0441, a G-clef: \U0001d11e"
Это иллюстрирует:
- используя префикс u, чтобы убедиться, что строка является
unicode
объектом
- использование escape-символов для символов в основной многоязычной плоскости (U + FFFD и ниже)
- использование экранирования U для символов в других плоскостях (U + 10000 и выше)
- , что Ƃ (U + 0182 LATIN CAPITAL LETTER B с TOPBAR) и B (U + 0411 CYRILLIC CAPTIAL LETTER BE) являются лишь одним примером многих смущающе похожих кодов Unicode
Кодировка скрипта по умолчанию для Python, которая работает везде, - ASCII. Таким образом, вам придется использовать вышеупомянутые escape-символы для кодирования литералов не-ASCII символов. Вы можете сообщить интерпретатору Python о кодировке вашего скрипта в виде строки:
# -*- coding: utf-8 -*-
Это только меняет кодировку вашего скрипта. Но тогда вы могли бы написать:
print u"Look Борис, a G-clef: "
Обратите внимание, что вы все равно должны использовать префикс u для получения объекта unicode
, а не объекта str
.
Наконец, можно изменить кодировку по умолчанию, используемую для str
... но это не рекомендуется, так как это глобальное изменение и может плохо работать с другим кодом Python.