在Python 3中显示Unicode符号的文本表示

Ale*_*exG 2 python unicode python-3.x emoji python-unicode

我可以在我的ipython笔记本中做到这一点:

print(u"\u2605")
Run Code Online (Sandbox Code Playgroud)

但是我该如何倒退呢?也就是说,从符号转到unicode字符串.以UTF-8或UTF-16编码它给出了二进制表示.例如:

print('?'.encode('utf-16'))
Run Code Online (Sandbox Code Playgroud)

B '\ XFF\XFE\X05&'

fal*_*tru 6

你可以使用unicode-escape编码:

>>> '?'.encode('unicode-escape')
b'\\u2605'
>>> print('?'.encode('unicode-escape').decode())
\u2605
Run Code Online (Sandbox Code Playgroud)

或者ord如果你只是想知道代码点:

>>> ord('?')
9733
>>> hex(ord('?'))  # as hexa decimal
'0x2605'
>>> print(r'\u%x' % ord('?'))
\u2605
Run Code Online (Sandbox Code Playgroud)

UPDATE

您还可以使用ascii:

>>> print(ascii('?'))  # NOTE: surrounding quote
'\u2605'
>>> print(ascii('?').strip("'"))
\u2605
Run Code Online (Sandbox Code Playgroud)