如何在Python的SQLAlchemy/Postgres中实际设置utf-8编码
我正在使用Flask开发一个web应用程序,并使用SQLAlchemy开发一个Postgresql数据库。它很好用。除了一个小问题:所有的文本数据都采用某种编码,它不是utf-8,至少我认为不是 我环顾四周,寻找任何可能的解决方案,这就是我所尝试的: 在项目中的每个Python文件中包括这一行: -*-编码:utf-8-*- 按如下方式设置发动机: 定义初始自我: self.engine=sql.create_engineos.environ['DATABASE_URL'],encoding='utf8' self.conn=self.engine.connect self.metadata=sql.metadata 以及前面这些项目的一些变体,如client_encoding='utf8,而不是encoding='utf8。我还尝试了以下解决方案: 例如,这是我的选择函数之一,但问题发生在每个选择/插入/更新函数中: def get_produtosself,id: produtos=sql.表'produtos',self.metadata,autoload=True, 使用=self.engine.columns自动加载_ parceiros=sql.表'parceiros',self.metadata,autoload=True, 使用=self.engine.columns自动加载_ q=sql。选择[produtos.id,produtos.nome,parceiros.nome\u parceiro, produtos.valor,produtos.qtd_descon, parceiros.id_parceiro] q=q.whereprodutos.id==id 返回self.conn.executeq.fetchall 程序不会引发任何异常,但数据只是带有错误的编码 以下是我的数据库中的数据: 这就是数据在我的应用程序中显示的方式:正如JosefZ所说,这是一个案例。如何在Python的SQLAlchemy/Postgres中实际设置utf-8编码,python,postgresql,flask,utf-8,sqlalchemy,Python,Postgresql,Flask,Utf 8,Sqlalchemy,我正在使用Flask开发一个web应用程序,并使用SQLAlchemy开发一个Postgresql数据库。它很好用。除了一个小问题:所有的文本数据都采用某种编码,它不是utf-8,至少我认为不是 我环顾四周,寻找任何可能的解决方案,这就是我所尝试的: 在项目中的每个Python文件中包括这一行: -*-编码:utf-8-*- 按如下方式设置发动机: 定义初始自我: self.engine=sql.create_engineos.environ['DATABASE_URL'],encoding='
出现此问题的原因尤其是某些条目是通过shell插入的,没有编码,导致了这种不一致。您是否可以从psql控制台添加此命令的输出:\l应用程序正在Heroku上运行,因此我只能访问数据库本身。运行您所说的登录到我的数据库的命令不确定这样做是否正确,我得到了以下信息:一个明显的案例。您正确地怀疑所有文本数据都采用某种编码,而不是utf-8Se‡Æo Eletr“nicos”绝对是这句话的结果:“Seço Eletrônicos”。编码“cp850”。解码“cp1252”…@JosefZ这个问题实际上在不久前就解决了,但感谢您的回答,因为它可能会帮助其他人people@MarcosSombra那么,你应该最终接受答案来解释为什么这很重要。