繁体   English   中英

Python - 阅读表情符号Unicode字符

[英]Python - Reading Emoji Unicode Characters

我有一个Python 2.7程序,它从SQLite数据库中读取iOS文本消息。 文本消息是unicode字符串。 在以下文字信息中:

u'that\u2019s \U0001f63b'

撇号由\’表示,但表情符号由\\U0001f63b表示。 我查找了有问题的表情符号的代码点,它是\ 我不确定0001的来源。 我对字符编码很少了解。

当我逐个字符地打印文本时,使用:

s = u'that\u2019s \U0001f63b'

for c in s:
    print c.encode('unicode_escape')

该程序产生以下输出:

t
h
a
t
\u2019
s

\ud83d
\ude3b

如何在Python中正确读取这些最后的字符? 我在这里正确使用编码吗? 我是否应该在阅读之前尝试将这些0001废弃,或者是否有更容易,更不傻的方式?

我不认为你正确使用编码,也不需要。 你拥有的是一个有效的unicode字符串,其中包含一个4位和一个8位数的转义序列。 在OS X上的REPL中尝试这个

>>> s = u'that\u2019s \U0001f63b'
>>> print s
that’s 😻

在python3中,尽管 -

Python 3.4.3 (default, Jul  7 2015, 15:40:07) 
>>> s  = u'that\u2019s \U0001f63b'
>>> s[-1]
'😻'

您最后的困惑可能是由于您正在运行所谓的“窄Python构建”。 Python无法容纳具有足够信息的单个字符来容纳单个表情符号。 最好的解决方案是转向Python 3.否则,尝试处理UTF-16代理对

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM