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