【问题标题】:Encoding a field result coming from a query编码来自查询的字段结果
【发布时间】:2016-08-04 08:23:35
【问题描述】:

在 Django 中,我使用外部命令对 MySQL 进行查询。在我恢复一个带有 utf-8 字符的字段(有点 Camión)之前,一切都变得很好。在那一点上,我不能再进入查询集,MySQL 返回

'ascii' codec can't encode character u'\xf3' in position 34: ordinal not in range(128)

我的代码是下一个:

cursor = connection.cursor()
query = "SELECT * FROM " + table_name + " ORDER BY " + "1"
cursor.execute(query)

rows = cursor.fetchall()
for row in rows:
    result = []
    for field in row:
        print field
        result += [str(field)]

如何避免这种情况? 谢谢大佬...

编辑: 它通过field = unicode(field).encode("utf-8", "replace")工作

【问题讨论】:

  • 调用并替换下一个的原始字段字符串... field = unicode(field).encode("utf-8", "replace")
  • 你为什么要这样做?为什么不使用 Django 模型?
  • 哈哈哈......历史真长......我几乎要疯了...... LOL

标签: mysql django unicode django-views mysql-error-1064


【解决方案1】:

尝试在 python 脚本的开头添加以下行

# -*- coding: utf-8 -*-

【讨论】:

  • 感谢您的回答。这是一个 Django 项目。我还能用吗?不管怎样,我找到了一个可以在我的视图中直接使用的解决方案。检查我的更新。谢谢伙计。
【解决方案2】:

调用并替换下一个的原始字段字符串... field = unicode(field).encode("utf-8", "replace")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-07
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多