2011年01月16日 星期日 23:55
问题大概可以描述如下:
str1="中文"
str2="english"
t1=(str1,str1)
t2=(str2,str2)
#执行mysql插入时
cur.execute('INSERT INTO mytable VALUES(%s,%s)',t1) #报错
cur.execute('INSERT INTO mytable VALUES(%s,%s)',t2) #正确
问题:中文的要怎么插入?
还请高手指点一下。
补充:
mysql字符集设为GBK,
str1="中文".decode("utf8").encode("gbk")
依然解决不了问题。
2011年01月17日 星期一 00:09
str = u"中文".encode("gbk")
2011年01月17日 星期一 10:54
请问你import的是mysql的那个库?我在用sqlalchemy的时候,创建引擎的时候是可以指定数据库编码的
1.检查数据库引擎是否为gbk编码(建议采用通用的utf-8编码)
2.检查python头文件是否指定文件编码方式为gbk
如:# -*- coding:gbk -*- 或者 # coding=gbk
3.检查数据库链接对象的charset是否设置为gbk
如: db = MySQLdb.connect(host.......,charset="gbk")
4.对select出来的值进行print一下或者type一下值,查看其类型
多检查一下每个环节的编码问题,应该不难解决,祝成功 。。。
2011年01月17日 星期一 12:13
编码还确实麻烦,不同的系统也不一样。就是需要你在python终端测试,哪种可以通过
2011年01月17日 星期一 21:57
多谢各位关注。
问题解决。
关键是 连接 mysql时也要设字符集为GBK.
2011年01月17日 星期一 22:09
鼓掌~
Zeuux © 2024
京ICP备05028076号