1. 程式人生 > >解決python中因為字串編碼導致的錯誤

解決python中因為字串編碼導致的錯誤

python程式設計例項:

1. 將抓取的網站資料,儲存到excel表格中,在sheet.write()函式時,報錯如下:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128) 

百度上一般的解決方法如下: import sys
reload(sys)

sys.setdefaultencoding('utf-8')

---上述方法只適用於儲存的編碼格式為utf-8的方式,如果需求其他的編碼方式,一般上述方法都不能解決

2. 小編經過長時間的掉入坑中,總結一套方法:

   1. 出現上述錯誤時,首先使用chardet庫中的detect方法,獲取當前字串的編碼格式'format'

   2. 針對獲取到的編碼格式進行解碼,即str.decode('format')

   3. 如果第二種方法仍然不能解決,嘗試著將其進行編碼,即str.decode('format').encode('format1'),其中format1的種類不多,比如utf-8, ascii,還有gbk,gb2312等不多的幾種,一般都可以搞定