Python psycopg2不在utf-8中

2024-06-28 19:23:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python连接到postgresql数据库,如下所示:

conn=psycopg2.connect(database="fedour", user="fedpur", password="***", host="127.0.0.1", port="5432")

没问题。

但是当我进行查询并想打印光标时,我得到了如下信息:

“Fran\xc3\xa7ois”而不是“François”,当我想用它创建一个XML文档时会产生问题。 我想这是我的记录,但我找到了解决办法。我试着编码('utf-8'),但不起作用。

我也见过类似的东西,但它只适用于mySQL

MySQLdb.connect(charset='utf8', init_command='SET NAMES UTF8')

你能帮我吗?谢谢


Tags: 信息数据库hostportpostgresqlconnectpasswordconn
2条回答

通过命令提示符执行查询时,值是否正确插入?

如果是,则问题在于光标的执行。请尝试cur.execute(u"querystring");(u表示utf编码)

如果不是,则需要将postgres的编码类型设置为考虑utf-8。您可以参考character encoding in Postgres来了解如何设置数据库的默认字符编码,以及从一种编码到另一种编码的动态转换。

确保通过运行:print conn.encoding使用正确的编码,如果需要,可以通过conn.set_client_encoding('UNICODE')conn.set_client_encoding('UTF8')设置正确的编码。

相关问题 更多 >