为啥我在 Mysql SELECT 查询期间收到此 UnicodeDecodeError? [复制]
Posted
技术标签:
【中文标题】为啥我在 Mysql SELECT 查询期间收到此 UnicodeDecodeError? [复制]【英文标题】: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 行是错误发生的地方。
【问题讨论】:
请避免发布代码或错误的图片(或更糟糕的是,图片链接)。任何基于文本的(代码和错误)都应作为文本直接发布在问题本身中,并正确格式化为minimal reproducible example。你可以得到更多formatting help here。您还可以阅读why you shouldn't post images/links of code。 【参考方案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。
【讨论】:
以上是关于为啥我在 Mysql SELECT 查询期间收到此 UnicodeDecodeError? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在运行查询时收到错误 -4700(尝试使用新功能模式)?
为啥我在尝试从 Angular 2 应用程序连接和查询 Firebase 数据库时收到此错误消息?
为啥我在使用 Java (Netbeans) 连接到 MySQL 时收到此错误“通信链接失败最后发送的数据包...”? [复制]
为啥我在 Xcode 中的 pod init 期间收到加载错误?