如何使用 MySQL 数据库修复 Flask 应用中的字符编码问题

问题描述 投票:0回答:1

我正在开发一个涉及 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,因此脚本上的重音元音和 ñ 没有问题。

python mysql flask character-encoding mysql-connector-python
1个回答
0
投票

你尝试过这个吗?

return mysql.connector.connect(
    user=nombre_usuario,
    password=contraseña,
    host="localhost",
    database="bienestar",
    charset='utf8'
)
© www.soinside.com 2019 - 2024. All rights reserved.