我想在终端上运行我的代码,但它显示了这个错误:
SyntaxError:文件streaming.py中的非ASCII字符'\ xd8' 72,但没有声明编码;见http://python.org/dev/peps/pep-0263/ 详情
我尝试使用以下方法对阿拉伯字符串进行编码:
# -*- coding: utf-8 -*-
st = 'المملكة العربية السعودية'.encode('utf-8')
对我来说,在终端上运行它非常重要,所以我不能使用IDLE。
答案 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
,因此请确保编码正确。