Official Python tutorial表示Python中的Unicode字符串可以像这样使用:
u'Hello World !'
但是当我把它放到IDLE - Python 3.2的Python GUI时,它给了我一个语法错误。俄语和中文文本也可以成功地存储在Python字符串中,所以我猜它们已经是Unicode了。
你能解释一下发生了什么吗?
答案 0 :(得分:6)
默认情况下,python 3.2使用unicode字符串,因此不再需要u
。
如果您想编码和解码字符串,您应该使用:
encoded = "unicodestring".encode("UTF8")
decoded = s.decode("UTF8")
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'语法。