ASCII使用:
的Postgres 9.5
psycopg2 2.6.2
蟒蛇3.4.2
系統(Debian的傑西)語言環境:en_US.UTF-8
Python的sys.stdout的。編碼是UTF8python3默認與uwsgi皇帝
數據庫UTF8,我有é,C,E等的詞條,...
pgcur.execute("SELECT * FROM table1")
rows = pgcur.fetchall()
for r in rows:
print(r)
給出了一個錯誤:
UnicodeEncodeError:在521位置 'ASCII' 編解碼器不能安可字符 '\ xe9':在範圍序數不(128)
我不理解,psycopg2連接編碼是UTF8,數據庫是UTF8, python3是默認字符串unicode ...爲什麼有ascii編解碼器參與?
print(r.encoding('utf8'))
解決了這個問題,但我不記得有這樣做,在PostgreSQL 9.4(和同psycopg2/Python的版本)
我錯過了什麼?
可能是一個原因,是真的,但我只有一個語言環境安裝在我的系統上,它是UTF8 – comte
@comte,是'print' ?你檢查過「LANG」是否正確? –
是的,我檢查$ LANG是正確的。但不是隻打印,當發送變量到Bottle模板時,他也給我這個錯誤。有什麼奇怪的我從來沒有與postgresql 9.4(和相同的Python代碼,相同的系統)這個錯誤 – comte