python 中使用 mysql 连接器 python 的编码问题
Encoding issue in python using mysql connector python
我写了一个 python 脚本,它从数据库中获取数据并进行处理。
最初我使用 pymysql 连接数据库,我将其更改为 MySQL python 的连接器。当我开始使用 MySQL 连接器时,出现以下问题
'ascii' 编解码器无法对位置 14-16 中的字符进行编码:序号不在范围内 (128)
我尝试添加 MySQL 连接器的字符集设置,但问题仍然存在。
有人知道这个问题吗?
- 确保在您的 table 中指定了
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
您将解决问题。
我写了一个 python 脚本,它从数据库中获取数据并进行处理。
最初我使用 pymysql 连接数据库,我将其更改为 MySQL python 的连接器。当我开始使用 MySQL 连接器时,出现以下问题
'ascii' 编解码器无法对位置 14-16 中的字符进行编码:序号不在范围内 (128)
我尝试添加 MySQL 连接器的字符集设置,但问题仍然存在。
有人知道这个问题吗?
- 确保在您的 table 中指定了
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
您将解决问题。