在字符串中打印unicode字符数(Python)

时间:2017-08-21 12:58:02

标签: python python-2.7 unicode

这应该很简单,但我不能破解它。

我在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')

2 个答案:

答案 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 ي