Python中 sys.setdefaultencoding("utf8") 的作用詳解


在處理中文數據,經常加入下面的代碼:

import sys
reload(sys)
sys.setdefaultencoding("utf8")

設置python默認字節流編/解碼器按照utf8解碼方式,把字節流編/解碼為unicode;

 

 

具體來說,所起到的作用,可以用下面兩個錯誤來解釋:

  1. 在將字節流使用str()方法轉換為str對象時,會調用默認的encode函數,如果沒有上述系統的默認編碼設置,則自動使用'ascii' codecs進行編碼,對於非ascii編碼的數據,比如utf8字節流會產生錯誤解碼提示:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

        2.在utf8編碼文件中寫入漢字字符, 比如 s = '中文'時, 如果沒有上述設置,運行程序會在初始s對象的值,報告錯誤解碼提示:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM