【发布时间】:2015-09-25 15:11:52
【问题描述】:
我有一个 Python 2.7 程序,它从 SQLite 数据库读取 iOS 文本消息。文本消息是 unicode 字符串。在以下短信中:
u'that\u2019s \U0001f63b'
撇号由\u2019 表示,但表情符号由\U0001f63b 表示。我查找了相关表情符号的代码点,它是\uf63b。我不确定0001 来自哪里。我对字符编码知之甚少。
当我逐个字符打印文本时,使用:
s = u'that\u2019s \U0001f63b'
for c in s:
print c.encode('unicode_escape')
程序产生以下输出:
t
h
a
t
\u2019
s
\ud83d
\ude3b
如何在 Python 中正确读取这些最后的字符?我在这里正确使用编码吗?我应该在阅读之前尝试删除那些0001s,还是有更简单、不那么愚蠢的方法?
【问题讨论】:
-
0xf63b位于 Unicode 的“私人使用”部分。你确定这是正确的吗?您的代码点可能是0x1f63b,因为那是“心眼微笑的猫”表情符号。 -
您如何确定
\uf63b是表情符号字符?根据我的参考,它是未定义的:fileformat.info/info/unicode/char/f63b/index.htm
标签: python python-2.7 unicode emoji