解決UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 108: ordinal not in range(128
今天作網頁到了測試和數據庫交互的地方,其中HTML和數據庫都是設置成utf-8格式編碼,插入到數據庫中是正確的,可是當讀取出來的時候就會出錯,緣由就是python的str默認是ascii編碼,和unicode編碼衝突,就會報這個標題錯誤。那麼該怎樣解決呢?html
經過蒐集網上的資料,本身屢次嘗試,問題算是解決了,在代碼中加上以下幾句便可。python
import sys reload(sys) sys.setdefaultencoding('utf8')
參考資料:http://groups.google.com/group/python-cn/browse_thread/thread/f48ef745452740f6?pli=1數據庫
點擊打開連接測試
混淆了 python2 裏邊的 str 和 unicode 數據類型。編碼
0.spa
你須要的是讓編碼用實際編碼而不是 asciicode
1.htm
對須要 str->unicode 的代碼,能夠在前邊寫上blog
import sys
reload(sys)
sys.setdefaultencoding(‘utf8′)
把 str 編碼由 ascii 改成 utf8 (或 gb18030)
2.
python3 區分了 unicode str 和 byte arrary,而且默認編碼再也不是 ascii