尝试搜索
下面的字符串时出现以下错误ERROR:
SyntaxError: Non-ASCII character '\xd8' in file Hadith_scraper.py on line 44, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
STRING:
دَّثَنَا عَبْدَانُ، قَالَ أَخْبَرَنَا عَبْ
CODE:
arabic_hadith = "دَّثَنَا عَبْدَانُ، قَالَ أَخْبَرَنَا عَبْ"
arabic_hadith.encode('utf8')
print arabic_hadith
if "الجمعة" in arabic_hadith:
day = "5"
else:
day = ""
答案 0 :(得分:4)
您有一个字节字符串,而不是unicode
值。尝试在Python 2中编码字节字符串意味着Python将首先尝试将其解码为unicode
,以便它可以进行编码。
此处使用unicode
值,并确保首先将编解码器设置在文件顶部。请参阅PEP 263 - Defining Python Source Code Encodings(您的错误消息指向您)。
请注意,无需在此处编码为UTF8,这只会使文本比较复杂化:
# encoding: utf8
arabic_hadith = u"دَّثَنَا عَبْدَانُ، قَالَ أَخْبَرَنَا عَبْ"
print arabic_hadith
if u"الجمعة" in arabic_hadith:
day = "5"
else:
day = ""
经验法则:将来自传入源(文件,网络数据)的字节解码为Unicode,在程序中仅处理Unicode,并且只对任何传出数据进行再次编码。
我恳请你阅读:
继续之前。