我有一个数据库,我需要知道数据库的默认编码。我想从命令行中获取它。
答案 0 :(得分:141)
从命令行:
psql my_database -c 'SHOW SERVER_ENCODING'
从psql
内部,SQL IDE或API:
SHOW SERVER_ENCODING
答案 1 :(得分:44)
方法1:
如果您已登录数据库服务器,只需复制并粘贴即可。
SHOW SERVER_ENCODING;
结果:
server_encoding
-----------------
UTF8
对于客户端编码:
SHOW CLIENT_ENCODING;
方法2:
如果您已经登录,请再次使用此选项获取基于列表的结果
\l
答案 2 :(得分:32)
程序化解决方案:
SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
答案 3 :(得分:30)
如果您想获得数据库编码:
psql -U postgres -h somehost --list
你会看到类似的东西:
List of databases
Name | Owner | Encoding
------------------------+----------+----------
db1 | postgres | UTF8
答案 4 :(得分:5)
因为有一种方法可以给猫皮肤涂抹:
psql -l
显示所有数据库名称,编码等。
答案 5 :(得分:4)
SELECT character_set_name
FROM information_schema.character_sets
;
information_schema
从每个数据库/目录中的SQL-standard schema information_schema
,使用名为character_sets
的已定义视图。这种方法应该可以在all standard database systems之间移植。
SELECT *
FROM information_schema.character_sets
;
尽管名称为复数,但它只显示一行,报告当前数据库/目录。
第三列是character_set_name
:
字符集的名称,当前实现为显示数据库编码的名称