0

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

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

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

有人对这个问题有想法吗?

4

1 回答 1

2
  1. 确保在您的表中指定了ascii编码

例子:

CREATE TABLE t1(
     col1 char, 
     ....,
     ....,
     ....
)Engine=InnoDB charset=ascii;
  1. 在 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可以解决问题。

于 2016-12-29T03:30:02.387 回答