設置utf-8為默認編碼


https://www.cnblogs.com/xqnq2007/p/7429584.html

當使用python編程時,編碼問題一直很讓人頭疼,程序中經常會碰到如下錯誤提示:

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

這是由於python在安裝時,默認的編碼是ascii,當程序中出現非ascii編碼時,python的處理常常會報上面的錯誤。

對於上面問題,一般有2種處理方法:

 

方法1:

在python代碼開頭加上如下代碼塊:

  1. import sys  
  2. reload(sys)  
  3. sys.setdefaultencoding('utf8')  

這種方法是臨時的,只在程序執行時生效,系統默認編碼並沒有改變。

注意:

為了防止重新設置默認編碼影響原本依賴ASCII編碼的程序,Python編譯器在啟動時特意清除了sys模塊的setdefaultencoding方法。如果需要調用,也可以reload(sys),然后就可以看到sys.setdefaultencoding方法了,不過設置之后就是后果自負了。

經測試,reload后也沒有啟用setdefaultencoding方法。

 

方法2:

python安裝時默認編碼是ascii,通過sys.getdefaultencoding()可以查看默認編碼。為了一次性解決問題,我們可以修改python的默認編碼。具體操作如下:

第一步:

在python安裝目錄的Lib\site-packages文件夾下新建一個sitecustomize.py文件

第二步:

在sitecustomize.py填寫如下代碼

  1. # encoding=utf8  
  2. import sys   
  3. reload(sys)  
  4. sys.setdefaultencoding('utf8')  

第三步:重啟python,通過sys.getdefaultencoding()查看默認編碼,這時結果為'utf8'

暫未測試此方法。

 
 


免責聲明!

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



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