2016-11-20 44 views
2

我可以在我的IPython笔记本做到这一点:显示文本表示3

print(u"\u2605") 

但我怎么往回走?也就是说,从符号到unicode字符串。使用UTF-8或UTF-16对其进行编码可提供二进制表示。例如:

print('★'.encode('utf-16')) 

B '\ XFF \ XFE \ X05 &'

回答

5

您可以使用unicode-escape encoding

>>> '★'.encode('unicode-escape') 
b'\\u2605' 
>>> print('★'.encode('unicode-escape').decode()) 
\u2605 

ord,如果你只是想知道的代码点:

>>> ord('★') 
9733 
>>> hex(ord('★')) # as hexa decimal 
'0x2605' 
>>> print(r'\u%x' % ord('★')) 
\u2605 

UPDATE

您还可以使用ascii

>>> print(ascii('★')) # NOTE: surrounding quote 
'\u2605' 
>>> print(ascii('★').strip("'")) 
\u2605 
+1

或'ASCII( '★')' –

+0

@Robᵩ,谢谢你的信息。我更新了包含该答案的答案。 – falsetru