MySQLDB 'utf-8' 编解码器问题无法解码字节 0x92
Issue with MySQLDB 'utf-8' codec can't decode byte 0x92
我在使用 MySQLdb 进行查询时遇到问题 运行。我收到以下错误消息
': 'utf-8' codec can't decode byte 0x92 in position 2: invalid start byte
我过去能够 运行 这个查询而没有编码问题,因此我不知道我的问题是从哪里来的。
我所做的唯一更改是在我的笔记本电脑上下载 Postgres 并删除(意外地)一个 db.sqlite3 文件。但我不明白为什么这会影响我的查询编码,特别是因为我没有任何特殊字符。 运行 一个更简单的查询可以正常工作,运行从我同事的笔记本电脑上进行此查询也可以。
查询如下:
SLEEPERS_QUERY = """
select * from candidates"""
import MySQLdb as db
with SSHTunnelForwarder(
ssh_address_or_host = host,
ssh_port = 22,
ssh_username = ssh_username,
ssh_pkey = ssh_private_key,
remote_bind_address = (rds, 3306), # 3306 = mysql port
) as server:
server.start()
print('Connected to the SSH server')
while True:
try:
conn = db.connect(
host = localhost,
port = server.local_bind_port,
user = user,
passwd = password,
db = database
)
print('Connected to the database server')
break
except: pass
df = pd.read_sql_query(query,conn)
return df
我找到了一个解决方案:我的默认编码从 latin1 更改为 utf8。
我必须添加 charset = 'latin1'
conn = db.connect(
host = localhost,
port = server.local_bind_port,
user = user,
passwd = password,
db = database,
charset = 'latin1'
)
我在使用 MySQLdb 进行查询时遇到问题 运行。我收到以下错误消息
': 'utf-8' codec can't decode byte 0x92 in position 2: invalid start byte
我过去能够 运行 这个查询而没有编码问题,因此我不知道我的问题是从哪里来的。 我所做的唯一更改是在我的笔记本电脑上下载 Postgres 并删除(意外地)一个 db.sqlite3 文件。但我不明白为什么这会影响我的查询编码,特别是因为我没有任何特殊字符。 运行 一个更简单的查询可以正常工作,运行从我同事的笔记本电脑上进行此查询也可以。
查询如下:
SLEEPERS_QUERY = """
select * from candidates"""
import MySQLdb as db
with SSHTunnelForwarder(
ssh_address_or_host = host,
ssh_port = 22,
ssh_username = ssh_username,
ssh_pkey = ssh_private_key,
remote_bind_address = (rds, 3306), # 3306 = mysql port
) as server:
server.start()
print('Connected to the SSH server')
while True:
try:
conn = db.connect(
host = localhost,
port = server.local_bind_port,
user = user,
passwd = password,
db = database
)
print('Connected to the database server')
break
except: pass
df = pd.read_sql_query(query,conn)
return df
我找到了一个解决方案:我的默认编码从 latin1 更改为 utf8。
我必须添加 charset = 'latin1'
conn = db.connect(
host = localhost,
port = server.local_bind_port,
user = user,
passwd = password,
db = database,
charset = 'latin1'
)