我正在尝试使用 sqlalchemy 连接 mysql 数据库。我已经设置了 charset=utf-8$use_unicode=0 。这适用于几乎所有数据库,但不适用于特定数据库。我相信这是因为它有 'init-connect' 变量设置为 'SET NAMES latin2;' 我无权更改它。

如果我发送显式查询 SET NAMES utf8 ,它对我有用,但是如果出现暂时断开连接,则在重新连接后,我的程序再次中断,因为它从服务器获取 lati2 编码的数据。

是否可以创建一些钩子(Hook)以在 sqlalchemy 连接时始终发送 SET NAMES?或者有什么其他方法可以解决这个问题?

最佳答案

听起来您想要的是自定义 PoolListener。这个 SO 答案解释了如何在 SQLite 的 PRAGMA foreign_keys=ON 的上下文中编写一个

Sqlite / SQLAlchemy: how to enforce Foreign Keys?

关于python - 带有 sqlalchemy 的 utf-8 与 init 连接的数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3617714/

10-11 07:58
查看更多