今天用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编码的方法