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

Has*_*aig 4 python unicode python-2.7

这应该很简单,但我无法破解它。

我在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')
Run Code Online (Sandbox Code Playgroud)

Arm*_*ius 5

您可以使用该ord()功能。

for c in example_string:
    print(ord(c), hex(ord(c)), c.encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

将为您提供此字符的十进制、十六进制代码点以及 UTF-8 编码,如下所示:

(1594, '0x63a', '\xd8\xba')
(1610, '0x64a', '\xd9\x8a')
(1606, '0x646', '\xd9\x86')
(1610, '0x64a', '\xd9\x8a')
(1575, '0x627', '\xd8\xa7')
(32, '0x20', ' ')
  :
  :
Run Code Online (Sandbox Code Playgroud)


Iza*_*gen 3

在评论中你说“\\u06FF这就是我想要打印的内容”——这也可以使用Python的repr函数来完成,尽管你似乎对hex(ord(c))非常满意。不过,这对于寻找 Unicode 字符的 ASCII 表示方式的人来说可能很有用。

\n\n
example_string = u'\\u063a\\u064a\\u0646\\u064a'\n\nfor c in example_string:\n    print repr(c), c\n
Run Code Online (Sandbox Code Playgroud)\n\n

给出输出

\n\n
u'\\u063a' \xd8\xba\nu'\\u064a' \xd9\x8a\nu'\\u0646' \xd9\x86\nu'\\u064a' \xd9\x8a\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果你想去掉 Python unicode 文字部分,你可以很简单地这样做

\n\n
for c in example_string:\n    print repr(c)[2:-1], c\n
Run Code Online (Sandbox Code Playgroud)\n\n

得到输出

\n\n
\\u063a \xd8\xba\n\\u064a \xd9\x8a\n\\u0646 \xd9\x86\n\\u064a \xd9\x8a\n
Run Code Online (Sandbox Code Playgroud)\n