获取 Postgres 数据库的编码

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

145254 次浏览

从命令行:

psql my_database -c 'SHOW SERVER_ENCODING'

psql、 SQLIDE 或 API 内部:

SHOW SERVER_ENCODING;

如果要获取数据库编码:

psql  -U postgres -h somehost --list

你会看到这样的东西:

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

方案解决办法:

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

方法一:

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

SHOW SERVER_ENCODING;

结果:

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

客户端编码:

 SHOW CLIENT_ENCODING;

方法二:

如果您已经登录,请再次使用此命令获取基于列表的结果

\l

博士

SELECT character_set_name
FROM information_schema.character_sets
;

标准方式: information_schema

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

SELECT *
FROM information_schema.character_sets
;

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

screenshot of pgAdmin 4 with results of query shown above

第三栏是 character_set_name:

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

因为剥猫皮的方法不止一种:

psql -l

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