我正在开发一个涉及 MySQL 数据库和 Python 中的 Flask 应用程序的项目。我建立了与 MySQL 的连接并使用cursor.execute 方法查询数据。但是,我在网页上的渲染输出中遇到了奇怪的字符:
经过调试,我发现这些字符来源于数据库。通过研究,我发现执行以下命令可以解决问题:
SET NAMES CP850;
运行该命令后,通过HeidiSQL查询数据库时字符显示正确。然而,在渲染网页时,奇怪的字符仍然存在。
我还注意到,如果重新启动会话,HeidiSQL 将恢复显示奇怪的字符,这表明需要在每个会话开始时执行该命令。
为了解决这个问题,我尝试执行 SET NAMES CP850;创建连接对象后在我的 Python 脚本中运行命令,但问题仍未解决。
我是如何创建连接的:
def intentar_conexión(nombre_usuario, contraseña):
try:
return mysql.connector.connect(
user=nombre_usuario,
password=contraseña,
host="localhost",
database="bienestar"
)
except mysql.connector.Error as err:
print("[Debug Message] MySQL Error: " + str(err))
return err.errno
我在 Python 上使用 utf-8,因此脚本上的重音元音和 ñ 没有问题。
你尝试过这个吗?
return mysql.connector.connect(
user=nombre_usuario,
password=contraseña,
host="localhost",
database="bienestar",
charset='utf8'
)