<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
#!/usr/bin/python # -*- coding: utf-8 -*- import MySQLdb def main(): fullname = "趙錢孫李" conn = MySQLdb.connect(host='localhost', user='root',passwd='123', db='account', charset='utf8') # OK #conn = MySQLdb.connect(host='localhost', user='root',passwd='123', db='account') # Error!!! cursor = conn.cursor() cursor.execute("insert into account (username,password) values ('%s','%s')" % (fullname, "111")) conn.commit() cursor.close() conn.close() if __name__ == "__main__": main()
如果從終端查詢到資料庫中的中文是亂碼,那麼在連線時給出charset引數即可(當然資料庫和表必須全部都是utf-8的)。
否則預設插入的字元應該是latin-1的(用fullname.decode('utf8')時報該錯誤)。
然後將從資料庫中讀取的中文輸出到網頁,如果沒有任何內容顯示,加入以下程式碼可解決:
import sys reload(sys) sys.setdefaultencoding('utf-8')
Python內部處理編碼預設是ascii的:
print sys.getdefaultencoding()
這幾天忙著幫人做一個從網頁抓取股票資訊並把相應資訊存入MySQL中的程式。
在寫程式中遇到了些怪的故障。
這個是由於字元編碼問題引起的。MySQL安裝時我已經設定為utf8編碼,表也是使用utf8編碼建立。程式中只要在開頭寫好#-*- coding: utf-8 -*-,並在設定連線字串時候寫清使用utf8就可以了conn=MySQLdb.connect(host="127.0.0.1",user="webdb",passwd="web123",db="web",charset="utf8")。
設定之後從MySQL中取出的以utf8編碼儲存的中文也不會發生亂碼。
對中文字串,如:a = "浦發銀行",在進行插入操作前做一下編碼轉換a = a.decode("gbk").encode("utf-8")。然後進行插入操作就沒有任何問題了。
經過檢查資料可以被正確的插入,但是連線斷開之後不儲存在表中。經過檢查發現原來是漏了conn.commit()。需要在語句執行之後提交操作。
原始碼如下:
# -*- coding: utf-8 -*- import sys,MySQLdb conn = MySQLdb.connect(host = " 127.0.0.1 " ,user = " webdb " ,passwd = " web123 " ,db = " web " ,charset = " utf8 " ) # 需要設定一下charset為utf-8 cursor = conn.cursor() # 生成連線的指標物件 # 進行字串編碼轉換並進行插入 a = " 浦發銀行 " a = a.decode( " gbk " ).encode( " utf-8 " ) # 編碼轉換為utf-8 sql = " insert into stocklist (stockno,stockname) values (%s,%s) " # 生成sql語句 param = ( ' 600000 ' ,a) # 生成sql語句的引數 n = cursor.execute(sql,param) # 執行sql語句 # 以上操作等價於n = cursor.execute("insert into stocklist (stockno,stockname) values ('430004','"+ "浦發銀行".decode("gbk").encode("utf-8") + "')") print n conn.commit() # 提交操作結果 # 進行查詢操作檢查剛剛執行的插入操作結果 n = cursor.execute( " select * from stocklist " ) for row in cursor.fetchall(): print row[0] + row[ 1 ] cursor.close() # 關閉指標 conn.close() # 關閉連線
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45