解決Python UnicodeDecodeError: ‘ascii’ codec can’t decode

注:本文轉自http://blog.csdn.net/mindmb/article/details/7898528

 

今天做網頁到了測試和數據庫交互的地方,其中HTML和數據庫都是設置成utf-8格式編碼,插入到數據庫中是正確的,但是當讀取出來的時候就會出錯,原因就是python的str默認是ascii編碼,和unicode編碼衝突,就會報這個標題錯誤。那麼該怎樣解決呢?

通過蒐集網上的資料,自己多次嘗試,問題算是解決了,在代碼中加上如下幾句即可。

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

http://docs.python.org/howto/unicode.html這個是python的unicode編碼API文檔,英文好的同學可以看一下,加深理解。

參考資料:http://groups.google.com/group/python-cn/browse_thread/thread/f48ef745452740f6?pli=1

點擊打開鏈接

------------------------------------------------------------------------------------------------------------------------

 

混淆了 python2 裏邊的 str 和 unicode 數據類型。

0.

你需要的是讓編碼用實際編碼而不是 ascii

1.

對需要 str->unicode 的代碼,可以在前邊寫上

import sys

reload(sys)

sys.setdefaultencoding(‘utf8′)

把 str 編碼由 ascii 改爲 utf8 (或 gb18030)

2.

python3 區分了 unicode str 和 byte arrary,並且默認編碼不再是 ascii

 

 

 

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