官方 Python 教程 表示,Python 中的 Unicode 字符串可以像这样使用:
u'Hello World !'
但是,当我将它放到Python 3.2的GUI环境IDLE中时,它会给出一个语法错误。另外,俄文和中文文本可以成功地存储在Python字符串中,因此我猜它们已经是Unicode编码了。
您能解释一下发生了什么吗?
官方 Python 教程 表示,Python 中的 Unicode 字符串可以像这样使用:
u'Hello World !'
但是,当我将它放到Python 3.2的GUI环境IDLE中时,它会给出一个语法错误。另外,俄文和中文文本可以成功地存储在Python字符串中,因此我猜它们已经是Unicode编码了。
您能解释一下发生了什么吗?
默认情况下,Python 3.2 使用 Unicode 字符串,因此不再需要使用 u
。
如果您想对字符串进行编码和解码,则应使用:
encoded = "unicodestring".encode("UTF8")
decoded = s.decode("UTF8")
Python文档指出:
Python 3.0使用文本和(二进制)数据的概念,而不是Unicode字符串和8位字符串。所有文本都是Unicode;但编码的Unicode被表示为二进制数据。用于保存文本的类型是str
并且
您不能再使用u“…”字面量来表示Unicode文本。但是,您必须使用b“…”字面量来表示二进制数据。
新增语法特性:
引入新的yield from表达式用于生成器委托。
对于str对象,u'unicode'语法再次被接受。