python中 codec can't decode byte 0xb5 in position 0 編碼問題

報錯環境:ptyhon 2.7
報錯內容:
ascii’ codec can’t decode byte 0xe4 in position 0: ordinal not in range(128)

原因:
Python在進行編碼方式之間的轉換時,會將 unicode 作爲“中間編碼”,但 unicode 最大隻有128那麼長,所以這裏當嘗試將 ascii 編碼字符串轉換成"中間編碼" unicode 時由於超出了其範圍,就報出瞭如上錯誤。將Python的默認編碼方式修改爲utf-8即可

解決方案,在py腳本,添加以下代碼:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

報錯:

utf-8’ codec can’t decode byte 0xba in position 0: invalid start byte

原因:要解碼中文

只需要將編碼格式修改爲  GB2312 即可

import sys

reload(sys)

sys.setdefaultencoding('GB2312')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章