fileinput设置编码python_Python的各种编码设置
之前我們編寫了一個python操作數(shù)據(jù)庫的方法,按照文檔的提供的參數(shù)來寫,寫完了以后自己測試發(fā)現(xiàn)報了一個編碼的錯誤,也不知道為什么會報這個錯誤,我一般對編碼的錯誤比較在意,原來搞php的時候,就出現(xiàn)過讀取數(shù)據(jù)庫里的信息編碼錯誤,后來我吸取了教訓(xùn),用php讀取數(shù)據(jù)庫數(shù)據(jù)按照一套標(biāo)準(zhǔn)來走就沒有出現(xiàn)過編碼的問題。
我的標(biāo)準(zhǔn)是:設(shè)置4個地方編碼一致。
1數(shù)據(jù)庫編碼
2數(shù)據(jù)表編碼
3程序文件編碼
4讀取數(shù)據(jù)之前設(shè)置好編碼
我現(xiàn)在用python讀取mysql數(shù)據(jù)庫的時候就遇到:數(shù)據(jù)庫錯誤: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
我檢查了下各處的編碼,數(shù)據(jù)庫,數(shù)據(jù)表和文件的編碼都是utf-8,都是一致的,那為什么還是會出現(xiàn)編碼的問題呢?
我想應(yīng)該是讀取數(shù)據(jù)之前沒有設(shè)置默認(rèn)的編碼,接著我查了下文檔,發(fā)現(xiàn)了解決辦法。
我通過sys模塊的setdefaultencoding('編碼類型')來進(jìn)行python 編碼設(shè)置。
下面給出我的代碼:
#encoding=utf-8
import sys
import MySQLdb
reload(sys)
sys.setdefaultencoding('utf-8')
看來應(yīng)該先設(shè)置好編碼類型,再讀取數(shù)據(jù)就不會出錯了。
總結(jié)
以上是生活随笔為你收集整理的fileinput设置编码python_Python的各种编码设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python自动化开发教程_Python
- 下一篇: java图片上传下载_java web