Python psycopg2 不在 utf-8 中
Python psycopg2 not in utf-8
我使用 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')
你能帮帮我吗?谢谢
通过命令提示符执行查询时是否正确插入了值?
如果是,那么问题出在你的光标execution.Try cur.execute(u"querystring");
(u表示utf编码)
如果不是,那么需要设置postgres的编码类型考虑utf-8。您可以参考 character encoding in Postgres 了解如何为数据库设置默认字符编码,以及如何从一种编码即时转换为另一种编码。
通过 运行 确保您使用正确的编码:print conn.encoding
,如果需要,您可以通过 conn.set_client_encoding('UNICODE')
或 [=12= 设置正确的编码].
我使用 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')
你能帮帮我吗?谢谢
通过命令提示符执行查询时是否正确插入了值?
如果是,那么问题出在你的光标execution.Try cur.execute(u"querystring");
(u表示utf编码)
如果不是,那么需要设置postgres的编码类型考虑utf-8。您可以参考 character encoding in Postgres 了解如何为数据库设置默认字符编码,以及如何从一种编码即时转换为另一种编码。
通过 运行 确保您使用正确的编码:print conn.encoding
,如果需要,您可以通过 conn.set_client_encoding('UNICODE')
或 [=12= 设置正确的编码].