用Python编写字符串

时间:2018-05-20 19:24:09

标签: python python-2.7 utf-8 encode arabic

我想在终端上运行我的代码,但它显示了这个错误:

  

SyntaxError:文件streaming.py中的非ASCII字符'\ xd8'   72,但没有声明编码;见http://python.org/dev/peps/pep-0263/   详情

我尝试使用以下方法对阿拉伯字符串进行编码:

# -*- coding: utf-8 -*-

st = 'المملكة العربية السعودية'.encode('utf-8')

对我来说,在终端上运行它非常重要,所以我不能使用IDLE。

1 个答案:

答案 0 :(得分:2)

问题是因为你直接将你的字符粘贴到python文件中,解释器(Python 2)试图将它们作为ASCII读取(甚至在编码之前,它需要定义文字),这是非法的。如果粘贴非ASCII字节,你想要的是一个unicode文字:

x=u'المملكة العربية السعودية' #Or whatever the corresponding bytes are
print x.encode('utf-8')

您还可以尝试将整个源文件设置为utf-8

#/usr/bin/python
# -*- coding: utf-8 -*-

并且不要忘记让它可以运行,最后,你可以从Python 3中导入未来:

from __future__ import unicode_literal

位于文件顶部,因此默认情况下字符串文字为utf-8。请注意,\xd8在我的终端中显示为phi,因此请确保编码正确。