前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文读懂PostgreSQL编码方式

一文读懂PostgreSQL编码方式

作者头像
披头
发布2020-12-01 11:33:22
3.1K0
发布2020-12-01 11:33:22
举报
文章被收录于专栏:datartisandatartisandatartisan

PostgreSQL 中的字符集支持允许以各种字符集(也称为编码)存储文本,包括单字节字符集,如 ISO 8859系列和多字节字符集,如 EUC (EUC)、 UTF-8和 Mule 内部代码。所有支持的字符集都可以由客户机透明地使用,但是有一些字符集不支持在服务器中使用(即作为服务器端编码)。使用 initdb 初始化 PostgreSQL 数据库集群时选择了默认字符集。在创建数据库时可以重写它,因此可以使用多个数据库,每个数据库具有不同的字符集。

在 Windows 上,UTF-8编码可以用于任何语言环境。所以,windows PostgreSQL 服务器端(server)的默认编码方式为UTF8,在使用中文的windows系统上,操作系统的语言是GBK,所以,windows PostgreSQL 客户端(client)的默认编码方式是GBK。PostgreSQL 支持服务器和客户机之间的自动字符集转换:在此环境下插入汉字,一切正常。此时传到客户端的汉字为GBK编码,自动转为UTF8编码存到服务端;而查询时,又自动将服务端的UTF8编码转为GBK来显示,所以没有出现乱码。

当服务端编码为UTF8,客户端工具编码为GBK,查询结果出现中文乱码,可能的原因是:服务器端存储的文本不是由客户端插入的(服务器端插入的?),解决方法就是将客户端工具编码方式修改为UTF8

--方法1:
SET client_encoding TO 'UTF8';
--方法2:
\encoding 'UTF8';

附录:

查看服务器编码:

SHOW server_encoding;

查询当前的客户端编码:

SHOW client_encoding;

修改客户端编码方式:

SET client_encoding TO 'value';

返回默认编码:

RESET client_encoding;
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乐享数据8090 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档