当我尝试解码这样的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
答案 0 :(得分:2)
您似乎正在尝试将表情符号可视化。预计在Python中输出。
请与Emojis一起查看官方Unicode mappings
U + 1F901 且 U + 1F900 没有分配表情符号映射
在Python 3.6.5中
u'\U0001F941'
''
如果您想要精美打印,我发现emoji
库具有巨大的映射和视觉效果良好的显示效果
请注意我没有使用编码和解码
import emoji
emoji.emojize(':drum:')
''
但是U + 1F901是Circled Cross Formee With Two Dots 和U + 1F900是 Circled Cross Formee with Four Dots ,在Unicode.org页面上没有标准的显示映射。