python中mysql中⽂的读写
1. 设置mysql中的charset是UTF-8的,然后在python代码⽂件中设置#coding=utf-8。
2. 使⽤MySQLdb连接数据库时,要加上charset='utf-8'的选项,不然它会以默认的编码去读取数据库的内容。
确保了1和2之后,就能正常地读取中⽂数据了,⽰例代码:
#encoding=utf-8
import sys
import MySQLdb
t(user='root',charset='utf8')
cur=db.cursor()
for row in cur.fetchall():
print row["name"]
f.close()
cur.close()
这时输出的就是中⽂。
这时如果在打印时加上: print type(row["name"]),就会发现打印出来的是unicode。其实python内部都是⽤unicode来表⽰的。在这⾥,它把数据库中的内容从UTF-8转换到了unicode。⽽如果你要把中⽂内容写到数据库,还是需要转换成原来的UTF-8格式的,所以写的时候需要加上: row["name"].encode(“utf-8"),这表⽰从unicode转换成UTF-8。⽰例代码:
#encoding=utf-8
import sys
import MySQLdb
t(user='root',charset='utf8')
cur=db.cursor()
name = unicode('你好','utf-8')
f.close()
cur.close()
注意上⾯代码仅作演⽰,实际上,如果name类型为str类型,并且插⼊时不做encode,也能正常将中⽂插⼊数据库中
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论