2011-06-23 53 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 

顯示所有數據庫名稱,編碼等。