在处理mysqldb时支持utf-8

时间:2012-05-24 18:26:30

标签: python python-2.7 mysql-python

当我在mysql中插入查询时,  我做了以下事情:

execute(query.encode('utf8'))

我首先使字符串与unicode兼容,然后执行。

现在,当我再次从sql检索数据到我的python代码时,是否需要通过应用编码功能使其再次兼容unicode? 如果是,则sql返回行块,如何对所有行进行编码?

我使用cursor.fetchall()获取行。如何使行的每个元素兼容unicode?

1 个答案:

答案 0 :(得分:0)

第一步:阅读并理解:http://www.joelonsoftware.com/articles/Unicode.html #IMPORTANT

现在您知道程序中的所有文本数据都应该是unicode(而您不是 将utf-8编码字符串的unicode数据误认为,或者再使用“decode”进行“编码”)

您可以指定创建mysql连接时要使用的编码 - 在那里指定:http://mysql-python.sourceforge.net/MySQLdb-1.2.2/< -check用于“ init ”方法中的“charset”参数“连接”模块 - 它可以作为参数传递给MySQLdb.connect调用

从那时起,从此连接检索的所有文本数据将作为unicode呈现给Python,将存储在数据库中的数据编码为unicode字符串。