获取Postgres数据库的编码


141

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

Answers:


175

在命令行中:

psql my_database -c 'SHOW SERVER_ENCODING'

从内部psql,SQL IDE或API:

SHOW SERVER_ENCODING

这不是服务器级别的设置(用于新创建的数据库的默认设置),而不是问题中要求的数据库/目录级别的设置吗?
罗勒·布尔克

4
请注意,在psql中,最后需要有一个分号。即 SHOW SERVER_ENCODING;
乔恩·伯恩哈特

49

方法1:

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

SHOW SERVER_ENCODING;

结果:

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

对于客户端编码:

 SHOW CLIENT_ENCODING;

方法2:

再次,如果您已经登录,则使用它来获取基于列表的结果

\l 


32

如果要获取数据库编码:

psql  -U postgres -h somehost --list

您会看到类似以下内容:

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

12

因为有多种方法可以为猫皮:

psql -l

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


5

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

标准方式: information_schema

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

SELECT * 
FROM information_schema.character_sets 
;

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

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

第三列是character_set_name

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.