PostgreSQL Server端数据存储中文一般使用编码为UTF-8,因此,客户端如果是UTF-8编码,则不会出现乱码问题。绝大多数PostgreSQL的客户端库(例如jdbc、基于libpq的库)会比较智能的感知客户端的编码,然后将数据进行正确的转换后发送给客户端。
而Npgsql这个接口比较特殊,不能正确的自动设置客户端编码,在连接选项中也不能设置encoding,所以会导致中文乱码产生。
这时候可以通过下面的方法进行操作:
在PostgreSQL中,设置此用户名对此DB的连接选项的client_encoding强制为GBK编码
alter role <your name> in database <your database> set client_encoding to ‘GBK’;
如图下图操作: