今天用vs2019操作postgresql數據庫時出現了以下兩個問題
-
用insert插入中文數據失敗,返回錯誤信息為中文亂碼
閿欒 : 鏃犳晥鐨?"UTF8" 緙栫爜瀛楄妭欏哄簭: 0xb3
-
用select獲取信息,返回的中文信息為中文亂碼
百度搜到的基本上都是這篇文章的無限轉載
不過能明確的一點是,本地環境編碼和客戶端編碼不相同導致了這個問題
- 本地環境:指vs
- 客戶端:指安裝好postgresql自帶的shell
解決方法
- 進入你的客戶端即SQL shell,登錄你所需的數據庫,輸入
\encoding
,查看你客戶端的編碼
- 在你的編譯器,即vs中,連接數據庫成功后調用
set client_encoding to 'XXX';
,XXX是你在第1點看到的客戶端編碼
錯誤方向
- 可以不用嘗試去修改你的vs編碼了,我改了大半天,改來改去都解決不了;
- 假如你使用pgadmin,也不用嘗試在上面更改了,我也改了大半天,也解決不了;
- 不過我嘗試的是utf-8,就是將vs編碼改成utf-8,pgadmin將client_encoding改成utf-8,都失敗了。
這是修改vs編碼的方法