Синтаксис Unicode-строк в Python - PullRequest
       14

Синтаксис Unicode-строк в Python

3 голосов
/ 30 декабря 2011

Официальное руководство по Python утверждает, что строки Unicode в Python могут использоваться следующим образом:

u'Hello World !'

Но когда я помещаю его в IDLE - Python GUI Python 3.2, он дает мне синтаксическую ошибку. Также русский и китайский текст могут быть успешно сохранены в этих строках Python, так что, я думаю, они уже являются Unicode.

Не могли бы вы объяснить, что происходит?

Ответы [ 2 ]

6 голосов
/ 30 декабря 2011

по умолчанию python 3.2 работает со строками Unicode, поэтому u больше не нужен.

Если вы хотите кодировать и декодировать строки, вы должны использовать:

encoded = "unicodestring".encode("UTF8")

decoded = s.decode("UTF8")

Документация Python гласит:

Python 3.0 использует концепции текстовых и (двоичных) данных вместо строк Unicode и 8-битных строк. Весь текст в Unicode; однако закодированный Unicode представляется в виде двоичных данных. Тип, используемый для хранения текста: str

и

Вы больше не можете использовать литералы u "..." для текста в Юникоде. Однако вы должны использовать литералы b "..." для двоичных данных.

2 голосов
/ 19 марта 2015

В Python3.3 + литерал unicode снова действителен, см. Что нового в Python 3.3 :

Новые функции синтаксиса:

Новый выход из выражениядля делегирования генератора.
Синтаксис u'unicode 'снова принят для объектов str.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...