这应该很简单,但我不能破解它。
我在u'\u0600'
- u'\u06FF'
和u'\uFB50'
- u'\uFEFF'
之间有一串阿拉伯符号。例如غينيا واستمر العصبة ضرب قد
。
如何打印每个角色的unicode号码?我使用的是Python 2.7。
以下内容为我提供decoding Unicode is not supported
:
for c in example_string:
print unicode(c,'utf-8')
答案 0 :(得分:3)
您可以使用ord()
功能。
for c in example_string:
print(ord(c), hex(ord(c)), c.encode('utf-8'))
将为您提供十进制,十六进制代码点以及此字符的UTF-8编码,如下所示:
(1594, '0x63a', '\xd8\xba')
(1610, '0x64a', '\xd9\x8a')
(1606, '0x646', '\xd9\x86')
(1610, '0x64a', '\xd9\x8a')
(1575, '0x627', '\xd8\xa7')
(32, '0x20', ' ')
:
:
答案 1 :(得分:3)
在评论中你说'\u06FF
是我正在尝试打印的' - 这也可以使用Python的repr
函数来完成,尽管你对hex(ord(c)看起来很满意)。但是,对于寻找找到unicode字符的ascii表示的方法的人来说,这可能很有用。
example_string = u'\u063a\u064a\u0646\u064a'
for c in example_string:
print repr(c), c
给出输出
u'\u063a' غ
u'\u064a' ي
u'\u0646' ن
u'\u064a' ي
如果你想删除Python unicode文字部分,你可以简单地做
for c in example_string:
print repr(c)[2:-1], c
获取输出
\u063a غ
\u064a ي
\u0646 ن
\u064a ي