【轉(zhuǎn)】python與sqlite中文數(shù)據(jù)的問題
Posted on 2013-06-08 14:04 pts 閱讀(854) 評論(0) 編輯 收藏 所屬分類: Python
【轉(zhuǎn)】python與sqlite中文數(shù)據(jù)的問題
sqlite默認編碼是utf-8,在我們的PYTHON文件中設(shè)置文件保存編碼及輸出默認編碼都為utf-8
在python安裝目錄lib/site-packages,下新建 sitecustomize.py
輸入
import sys
sys.setdefaultencoding('utf-8') #set default encoding to utf-8
python運行時自動設(shè)置編碼為utf-8
往sqlite中插入數(shù)據(jù)然后直接print的時候,需要將數(shù)據(jù)編碼轉(zhuǎn)換為其他編碼,比如gbk
使用方法:
def Utf82Gb(self,str):
return str.decode('UTF-8').encode('gbk')
就可以輕松解決往sqlite中插入中文數(shù)據(jù)正確顯示的問題~
重大提醒:
# Never do this -- insecure!
symbol = 'RHAT'
c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
# Do this instead
t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
同時如果涉及到中文,就是僅有一個字段,也要使用tuple形式
的處理