6

我正在尝试打印给定名称的 unicode 字符,如下所示:

# -*- coding: utf-8 -*-
print "\N{SOLIDUS}"
print "\N{BLACK SPADE SUIT}"

然而,我得到的输出并不是很令人鼓舞。

转义序列按原样打印。

ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:21:10) [MSC v.1500 32 bit (Intel)] on
Type "help", "copyright", "credits" or "license" for more information.
>>> # -*- coding: utf-8 -*-
... print "\N{SOLIDUS}"
\N{SOLIDUS}
>>> print "\N{BLACK SPADE SUIT}"
\N{BLACK SPADE SUIT}
>>>

然而,我可以看到另一个提问者已经能够成功地做到这一点。

怎么了?

4

1 回答 1

17

这些序列仅适用于 unicode 字符串,这是 Python 3 唯一的字符串类型。因此,在 Python 2 中,您需要在字符串文字前加上u.

>>> print "\N{SOLIDUS} \N{BLACK SPADE SUIT}"
\N{SOLIDUS} \N{BLACK SPADE SUIT}
>>> print u"\N{SOLIDUS} \N{BLACK SPADE SUIT}"
/ ♠

文档中的相关行:

\N{name}Unicode 数据库中名为 name 的字符(仅限 Unicode)

于 2013-04-18T07:19:47.447 回答