获取Postgres数据库的编码

我有一个数据库,我需要知道数据库的默认编码。 我想从命令行得到它。

从命令行:

psql my_database -c 'SHOW SERVER_ENCODING' 

psql ,一个SQL IDE或一个API:

 SHOW SERVER_ENCODING 

方法1:

如果您已经login到数据库服务器,只需复制并粘贴。

 SHOW SERVER_ENCODING; 

结果:

  server_encoding ----------------- UTF8 

对于客户编码:

  SHOW CLIENT_ENCODING; 

方法2:

再次,如果您已经login,使用此来获取基于列表的结果

 \l 

程序化解决scheme:

 SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb'; 

如果你想获得数据库编码:

 psql -U postgres -h somehost --list 

你会看到像这样的东西:

 List of databases Name | Owner | Encoding ------------------------+----------+---------- db1 | postgres | UTF8 

TL;博士

 SELECT character_set_name FROM information_schema.character_sets ; 

标准方式: information_schema

从每个数据库/目录中存在的SQL标准模式 information_schema中,使用名为character_sets的已定义视图。 这种方法应该可以跨所有标准数据库系统进行移植

 SELECT * FROM information_schema.character_sets ; 

尽pipe名称是复数,但它只显示一行,报告当前的数据库/目录。

pgAdmin 4的屏幕截图,上面显示的查询结果

第三列是character_set_name

字符集的名称,当前实现为显示数据库编码的名称

因为有不止一个方法来剥皮猫:

 psql -l 

显示所有的数据库名称,编码等。