2011-12-30 2 views
3

Official Python tutorial утверждает, что строки Unicode в Python можно использовать так:Unicode строки синтаксиса в Python

u'Hello World !' 

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

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

+4

Вы должны использовать официальный учебник Python 3.2, поскольку используете Python 3.2: http://docs.python.org/3.2/tutorial/. – EOL

ответ

6

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

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

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

decoded = s.decode("UTF8") 

The Python documetation гласит, что:

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

и

Вы больше не можете использовать U «...» литералов для текста Unicode. Тем не менее, вы должны использовать b "..." литералы для двоичных данных.

2

В Python3.3 + юникодом буквального действует снова, см What’s New In Python 3.3:

Новые возможности синтаксиса:

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

Смежные вопросы