【问题标题】:support of utf-8 when dealing with mysqldb处理 mysqldb 时支持 utf-8
【发布时间】:2012-05-24 18:26:29
【问题描述】:

当我在 mysql 中插入查询时, 我执行以下操作:

execute(query.encode('utf8'))

我先让字符串兼容unicode,然后执行。

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

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

【问题讨论】:

    标签: python python-2.7 mysql-python


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-08-07
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多