2013-04-18 35 views
5

我想如下打印給他們的名字Unicode字符:Python的轉義序列 N {name}的不工作是根據定義

# -*- 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} 
>>> 

但是我可以看到,another asker已經能夠成功地做到這一點。

怎麼了?

+1

另一個問題是使用python 3,你是2.7。 – 2013-04-18 07:21:41

回答

14

Those sequences only work in unicode strings,這是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}" 
/♠ 

相關線路:

在Unicode數據庫

\N{name}字命名的名稱(Unicode的唯一)

+0

哦,弦之前的領先是魔力的一部分。 – 2013-11-04 13:40:39