UnicodeError: ASCII decoding error: ordinal not in range(128)' and 'UnicodeError: ASCII encoding error: ordinal not in range(128)
執行時出現以上錯誤就表視編碼上出現錯誤,解決方法:
value = unicode(value, "utf-8")
完整一點:
1: try:
2: unicode(value, "ascii")
3: except UnicodeError:
4: value = unicode(value, "utf-8")
5: else:
6: # value was valid ASCII data
7: pass
但有時卻不知道網站或文件編碼,則可以安裝 chardet 套件:
>>> import chardet
>>> import urllib
>>> urlread = lambda url: urllib.urlopen(url).read()
>>> chardet.detect(urlread("http://www.google.com"))
{'confidence': 0.99, 'encoding': 'utf-8'}
>>>
如果是在檔案寫入時發生的錯誤:
FILE = open('jpm03.html','w') 預設是ascii所以得改成
import codecs
FILE = codecs.open('jpm03.html','w','utf-8') 即可。
沒有留言:
張貼留言