【问题标题】:Why am I getting this UnicodeDecodeError during a Mysql SELECT query? [duplicate]为什么我在 Mysql SELECT 查询期间收到此 UnicodeDecodeError? [复制]
【发布时间】:2021-10-15 10:39:00
【问题描述】:

我正在运行一个查询 MySQL 表的非常基本的脚本,但是我遇到了一个我无法在网上找到的错误。我在网上看到很多与charmap/codec 相关的问题,但都与阅读文本或数据有关。

当我尝试 MySQL SELECT 查询时会发生此错误,或者至少我认为是这样。

有人知道为什么 Python 会出错吗?

我的代码是这样的:

第 188 行是错误发生的地方。

【问题讨论】:

标签: python mysql windows codec


【解决方案1】:

请看下面的答案: Encoding Issue - MySQL

在创建连接时添加额外参数应该可以解决您的问题。

con = mdb.connect('loclhost', 'root', '', 'mydb', use_unicode=True, charset='utf8')

谢谢。

【讨论】:

    【解决方案2】:

    alt 列包含OSC control character (0x9d)。好像是数据问题。您可以尝试替换字符以验证是否存在问题,但长期解决方案应该是不允许字符串中出现这些字符,将它们转换为 html 实体,或指定连接字符集。

    SELECT id, REPLACE(alt, UNHEX('9D'), '') ...
    

    另见this

    【讨论】:

      猜你喜欢
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      相关资源
      最近更新 更多