2013-04-18 14 views
5

sto cercando di stampare i caratteri Unicode dato il loro nome nel modo seguente:Python sequenza di escape N {nome} non funziona come da definizione

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

Tuttavia l'uscita ottengo non è molto incoraggiante.

La sequenza di escape viene stampata così com'è.

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

posso però vedere che another asker è stato in grado di farlo con successo.

Cosa c'è che non va?

+1

L'altra questione stava usando Python 3, si sono 2.7. –

risposta

14

Those sequences only work in unicode strings, che è l'unico tipo di stringa che Python 3 ha. Quindi in Python 2 è necessario anteporre la stringa letterale a u.

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

riga relativa dalla documentazione:

\N{name} personaggio di nome nome nel database Unicode (Unicode solo)

+0

Oh, il leader che precede la stringa è la parte magica. –

Problemi correlati