當python中間處理非ascii編碼時,經常會出現如下錯誤:
unicodedecodeerror: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
0x??是超出128的數字,python在預設的情況下認為語言的編碼是ascii編碼,所以無法處理其他編碼,需要設定python的
預設編碼為所需要的編碼。
乙個解決的方案是在**中新增:
import sys
reload(sys)
sys.setdefaultencoding('utf8') #gb2312,gbk
print sys.getdefaultencoding() # 輸出當前編碼
另乙個方案是在 python的lib\site-packages 資料夾下新建乙個sitecustomize.py 檔案(sitecustomize.pyis a special script; python will try to import it on startup, so any code in it will be run automatically.),輸入:
import sys
sys.setdefaultencoding('utf8')
這樣就能夠自動的設定編碼了。
ps:1. utf8的編碼是:utf-8
2. 測試已經成功的方法:
>>> import sys
>>> sys.getdefaultencoding()
Python 設定系統預設編碼
python在安裝時,預設的編碼是ascii,當程式中出現非ascii編碼時,python的處理常常會報這樣的錯unicodedecodeerror ascii codec can t decode byte 0x?in position 1 ordinal not in range 128 pyt...
Python 設定系統預設編碼
實際程式設計中必定要會遇到編碼問題。python在安裝時,預設的編碼是ascii,當程式中出現非ascii編碼時,python的處理常常會報這樣的錯unicodedecodeerror ascii codec can t decode byte 0x?in position 1 ordinal no...
Python 設定系統預設編碼
1.coding utf 8 作用是定義源 的編碼.如果沒有定義,此原始碼中是不可以包含中文字串的.pep 0263 defining python source code encodings 2.sys.getdefaultencoding 是設定預設的string的編碼格式 python在安裝時...