Python中的Unicode字符串语法

时间:2011-12-30 13:33:15

标签: python unicode python-3.x

Official Python tutorial表示Python中的Unicode字符串可以像这样使用:

u'Hello World !'

但是当我把它放到IDLE - Python 3.2的Python GUI时,它给了我一个语法错误。俄语和中文文本也可以成功地存储在Python字符串中,所以我猜它们已经是Unicode了。

你能解释一下发生了什么吗?

2 个答案:

答案 0 :(得分:6)

默认情况下,python 3.2使用unicode字符串,因此不再需要u

如果您想编码和解码字符串,您应该使用:

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

decoded = s.decode("UTF8")

Python documetation表示:

  

Python 3.0使用文本和(二进制)数据的概念,而不是Unicode字符串和8位字符串。所有文本都是Unicode;但编码的Unicode表示为二进制数据。用于保存文本的类型是str

  

您不能再对Unicode文本使用u“...”文字。但是,必须对二进制数据使用b“...”文字。

答案 1 :(得分:2)

在Python3.3 + unicode文字中再次有效,请参阅What’s New In Python 3.3

  

新语法功能:

     

生成器委派表达式的新收益率。
   str对象再次接受u'unicode'语法。