当我尝试像这样解码 unicode 字符时:
>>> x = '\U0000263a'
>>> x.encode().decode('unicode-escape')
'☺'
它有效!但大于 U+1f900 时失败。
>>> x = '\U0001f941'
>>> x.encode().decode('unicode-escape')
'U0001f941'
>>> x = '\U0001f900'
>>> x.encode().decode('unicode-escape')
'U0001f900'
但是当打印它时,它可以工作!
>>> x = '\U0001f901'
>>> print(x.encode().decode('unicode-escape'))
谁能向我解释一下发生了什么? 我正在使用python 3.5.2
您似乎正在尝试可视化表情符号。输出应该在 Python 中。
请使用表情符号查看官方 Unicode 映射
U+1F901和U+1F900没有分配表情符号映射
在 Python 3.6.5 中
u'U0001F941'
' '
如果你想要花哨的印刷,我发现emoji
图书馆有巨大的映射和视觉效果良好的显示 请注意我没有使用编码和解码
import emoji
emoji.emojize(':drum:')
' '
但是,U+1F901 是带有两个点的圆圈交叉形式,而 U+1F900 是带有四个点的圆形交叉形式,Unicode.org 页面上没有标准的显示映射。