Python中的Unicode字符串语法
官方的Python教程提到,Python中的Unicode字符串可以这样使用:
u'Hello World !'
但是当我在IDLE——Python 3.2的图形界面中运行时,它却给我提示语法错误。而且我发现俄语和中文的文本可以成功存储在Python字符串中,所以我猜它们已经是Unicode格式了。
你能帮我解释一下这是怎么回事吗?
2 个回答
3
在Python3.3及以上版本中,unicode字面量又可以用了,具体可以查看Python 3.3的新特性:
新的语法特性:
新增了用于生成器委托的yield from表达式。
现在可以再次使用u'unicode'的语法来表示字符串对象。
7
默认情况下,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"..." 这样的方式来表示二进制数据。