2011-09-27 35 views
4

下面的代碼:的Unicode文本導致無效的語法

s = s.replace(u"&", u"&") 

在Python導致錯誤:

SyntaxError: invalid syntax 

"修復之前去除u的問題,但是這應該作爲工作是什麼?我正在使用Python 3.1

回答

10

u已不再在Python 3中使用。字符串文字默認爲unicode。見What's New in Python 3.0

對於Unicode文本,您不能再使用u"..."文字。但是,對於二進制數據,您必須使用b"..."文字。

3

在Python 3上,字符串是unicode。沒有必要(並且正如你發現的那樣,你不能)在字符串文字之前加上u來指定unicode。

相反,您必須在字節文字之前加上b以指定它不是不是 unicode。

1

在Python3.3 + unicode的字面再次有效,請參閱What’s New In Python 3.3

新的語法特徵:

從表達的新產量發電機代表團。
對於str對象,u'unicode的語法再次被接受。