2011-06-23 26 views

回答

112

在命令行:

psql my_database -c 'SHOW SERVER_ENCODING' 

psql内,一个SQL IDE或API:

SHOW SERVER_ENCODING 
+0

是不是问题中要求的服务器级设置(用于新创建的数据库的默认设置)而不是数据库/目录级设置? –

26

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

psql -U postgres -h somehost --list 

你会看到一些东西一样:

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

使用编程解决方案:

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

方法1:

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

SHOW SERVER_ENCODING; 

结果:

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

对于客户端编码:

SHOW CLIENT_ENCODING; 

方法2:

同样,如果你已经登录,用它来获取列表基于结果

\l 
2

TL;博士

SELECT character_set_name 
FROM information_schema.character_sets 
; 

标准方式:information_schema

SQL-standard schemainformation_schema存在于每一个数据库/目录,使用名为character_sets的已定义视图。这种方法应该可以在all standard database systems之间移植。

SELECT * 
FROM information_schema.character_sets 
; 

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

screenshot of pgAdmin 4 with results of query shown above

第三列是character_set_name

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

0

因为有不止一种方法来皮肤猫:

psql -l 

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