2017-04-24 33 views
1

我使用Python連接到我的PostgreSQL數據庫這樣的:Python的psycopg2不是UTF-8

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

沒問題了點。

但是當我做一個查詢,我想打印光標我有這樣的事情:

「弗蘭\ XC3 \ xa7ois」,而不是「弗朗索瓦」,它造成的問題時,我想創建一個XML用這個文件。 我thkink來自我的編碼,但我找到了任何解決方案。我嘗試編碼('utf-8')但不起作用。

我也看到過這樣的事情,但其只限於MySQL

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

你能幫助我嗎?謝謝

回答

2

請確保您使用正確的編碼方式:運行:print conn.encoding,如果需要,可以通過conn.set_client_encoding('UNICODE')conn.set_client_encoding('UTF8')設置正確的編碼。

+0

是的它現在正在工作!謝謝 –

+0

@Fedour不客氣! –

0

通過命令提示符執行查詢時值是否正確插入?

如果是的話,那麼問題是你的光標execution.Try cur.execute(u"querystring");(在U表明UTF編碼)

如果沒有,那麼你需要設置的Postgres的編碼類型考慮UTF-8。您可以參考character encoding in Postgres以瞭解如何爲數據庫設置默認字符編碼,以及從一種編碼到另一種編碼的即時轉換。

+0

它幫了我,謝謝 –