我知道\xd9\x88
是阿拉伯语中و
字母的utf-8代码(您可以看到this page)。
我有一个包含此类utf-8字符列表的文件,如何用阿拉伯字符表示它们,例如用\xd9\x88
表示و
?
如果我这样做在Python 3上:
>>> i = '\xd9\x88'
>>> print(i)
Ù
答案 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),你会看到:
我在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'))
و