使用mysql连接器python在python中编码问题

Posted

技术标签:

【中文标题】使用mysql连接器python在python中编码问题【英文标题】:Encoding issue in python using mysql connector python 【发布时间】:2017-05-08 01:50:54 【问题描述】:

我编写了一个 python 脚本,它从数据库中获取数据并对其进行处理。 最初我使用 pymysql 连接数据库,我将其更改为 MySQL Connector for python。当我开始使用 MySQL 连接器时,我遇到了以下问题

'ascii' 编解码器无法对位置 14-16 中的字符进行编码:序数不在范围内 (128)

我尝试添加 MySQL 连接器的字符集设置,但问题仍然存在。

有人知道这个问题吗?

【问题讨论】:

请粘贴代码示例? 【参考方案1】:
    确保在您的表中指定了ascii 编码

例子:

CREATE TABLE t1(
     col1 char, 
     ....,
     ....,
     ....
)Engine=InnoDB charset=ascii;
    在 MySQL-Python 连接器中指定 assci 编码并启用 unicode

db = MySQLdb.connect( host="localhost", port=3306, user="john", passwd="megajonhy", db="jonhydb", use_unicode=True, charset='ascii' )

我相信默认情况下use_unicode 设置为False,因此通过设置True 您将解决问题。

【讨论】:

当我使用use_unicode=True, charset='utf8' 时,这对我的utf8mb4 数据库毫无帮助。有什么帮助是this anser

以上是关于使用mysql连接器python在python中编码问题的主要内容,如果未能解决你的问题,请参考以下文章

Python3连接MySQL

Python连接MySQL数据库之pymysql模块使用

Python连接MySQL数据库之pymysql模块使用

将 MySQL 连接器与 Python 一起使用时出现 SSL 连接错误

Python连接MySQL数据库之pymysql模块使用

在python中使用mysql连接器插入数据