Python中的Unicode字符串语法

4 投票
2 回答
1063 浏览
提问于 2025-04-17 09:16

官方的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"..." 这样的方式来表示二进制数据。

撰写回答