Python的各類編碼設置

以前咱們編寫了一個python操做數據庫的方法,按照文檔的提供的參數來寫,寫完了之後本身測試發現報了一個編碼的錯誤,也不知道爲何會報這個錯誤,我通常對編碼的錯誤比較在乎,原來搞php的時候,就出現過讀取數據庫裏的信息編碼錯誤,後來我吸收了教訓,用php讀取數據庫數據按照一套標準來走就沒有出現過編碼的問題。php

個人標準是:設置4個地方編碼一致。
1數據庫編碼
2數據表編碼
3程序文件編碼
4讀取數據以前設置好編碼html

我如今用python讀取mysql數據庫的時候就遇到:數據庫錯誤: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)python

我檢查了下各處的編碼,數據庫,數據表和文件的編碼都是utf-8,都是一致的,那爲何仍是會出現編碼的問題呢?
我想應該是讀取數據以前沒有設置默認的編碼,接着我查了下文檔,發現瞭解決辦法。mysql

我經過sys模塊的setdefaultencoding('編碼類型')來進行python 編碼設置。sql

下面給出個人代碼:
#encoding=utf-8
import sys
import MySQLdb數據庫

reload(sys)
sys.setdefaultencoding('utf-8')測試

看來應該先設置好編碼類型,再讀取數據就不會出錯了。編碼

還有, Python條件語句的嵌套使用初學者必定要掌握,推薦資料:http://www.iplaypython.com/jinjie/jj172.htmlcode

相關文章
相關標籤/搜索