UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 4..... 針對調用文件出現該錯誤時的解決辦法

這個問題確實困擾了我好久,上網查詢了很多博客,發現大家的解決方案都千篇一律,無非是那幾個方法。但是有些方法是針對不同版本的python設計的,我們應該明確我們的問題出在哪,再去找相應的解決方案。

首先,我們需要明確一點,python2.7的編碼格式默認爲“ascii”,而python3.6的編碼格式爲“utf-8”。意思就是,你在python2.1環境下生成的所有附加文件都是以python2.7的一套東西編碼的,python3.6也同樣。先來介紹網上的辦法。

1.網上解決辦法

if sys.getdefaultencoding() != 'utf-8':
    reload(sys)
    sys.setdefaultencoding('utf-8')


但用了這個方法的同學會發現,他會報關於reload函數的錯誤,這是因爲,python3.6已經拋棄了reload和setdefaultendoding。所以如果你是python3.6用戶,就別想這個方法了。

 

2.根本解決辦法,是將你所需要的附加文件,在現行python版本下生成一遍方可解決這個問題。

 

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