Error 發(fā)生環(huán)境:
- Python 3.7
- psycopg2 - 2.8.5
試過 reload(sys) 然后修改編碼(其實只對python2有用)、decode和encode(一般是處理讀文件時的問題,對本問題無效)等等方法,筆者查了一下午崩潰邊緣終于找到了病因!
解決方案在文末。
筆者在使用 psycopg2 進行 PostgreSQL 查詢時,遇到 UnicodeDecodeError 異常,已解決。

異常情況
上圖可以看到,在執(zhí)行查詢并fetch結(jié)果時,遇到了UnicodeDecodeError。
不過,只指定一 int 類型列作為返回時卻能正常范圍,所以推斷是因為范圍結(jié)果中的漢字導致錯誤。

正常情況
明確了可能的原因后,查看數(shù)據(jù)庫連接的編碼:
>>> conn.encoding
'SQLASCII'
這說明數(shù)據(jù)庫連接的編碼類型并不是utf8!
解決方案:conn.set_client_encoding('utf8') 一行代碼指定數(shù)據(jù)庫連接編碼類型即可。