我有一个 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中正确读取最后这些字符?我在这里正确使用编码吗?我应该尝试把它们扔掉吗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]
'????'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)