用Python表示其阿拉伯字符و中的\ xd9 \ x88(UTF-8 literal)

时间:2014-05-11 04:15:52

标签: unicode utf-8 character-encoding python-3.3 arabic

我知道\xd9\x88是阿拉伯语中و字母的utf-8代码(您可以看到this page)。

我有一个包含此类utf-8字符列表的文件,如何用阿拉伯字符表示它们,例如用\xd9\x88表示و

如果我这样做在Python 3上:

>>> i = '\xd9\x88'
>>> print(i)
Ù

1 个答案:

答案 0 :(得分:3)

如果要打印角色,只需使用print();但您必须确保终端支持编码并使用具有该字形的字体。

在Windows命令提示符中,使用默认编码(不支持阿拉伯语),您将看到:

Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> i = "\xd9\x88"
>>> print(i)
و
>>>

在Linux上,使用UTF-8作为默认编码并使用具有阿拉伯字形的字体,您将看到:

>>> i = "\xd9\x88"
>>> print(i)
و
>>>

回到Windows,如果你使用支持UTF-8的文本编辑器(在这种情况下,我使用的是Sublime Text),你会看到:

sublime-text-screencap

  

我在Windows上使用IDLE for Python和Python 3.

Python 3介绍了如何在Python中处理字符串的一些重大更改。在Python 3中,所有字符串都存储为unicode。

您实际上有一个字节字符串,一个表示代表字符的代码点的字符串。所以你需要正确解码它。

你可以这两种方式,首先是确保它的字节串开头:

>>> i = b"\xd9\x88"
>>> print(i.decode('utf-8'))
و

或者,您可以先将其编码为latin-1,这将为您提供一个字节串,然后对其进行解码:

>>> i = "\xd9\x88"
>>> type(i)
<class 'str'>
>>> type(i.encode('latin-1'))
<class 'bytes'>
>>> print(i.encode('latin-1').decode('utf-8'))
و