获取Postgres数据库的编码
我有一个数据库,我需要知道数据库的默认编码。 我想从命令行得到它。
从命令行:
psql my_database -c 'SHOW SERVER_ENCODING'
在psql
,一个SQL IDE或一个API:
SHOW SERVER_ENCODING
方法1:
如果您已经login到数据库服务器,只需复制并粘贴。
SHOW SERVER_ENCODING;
结果:
server_encoding ----------------- UTF8
对于客户编码:
SHOW CLIENT_ENCODING;
方法2:
再次,如果您已经login,使用此来获取基于列表的结果
\l
程序化解决scheme:
SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
如果你想获得数据库编码:
psql -U postgres -h somehost --list
你会看到像这样的东西:
List of databases Name | Owner | Encoding ------------------------+----------+---------- db1 | postgres | UTF8
TL;博士
SELECT character_set_name FROM information_schema.character_sets ;
标准方式: information_schema
从每个数据库/目录中存在的SQL标准模式 information_schema
中,使用名为character_sets
的已定义视图。 这种方法应该可以跨所有标准数据库系统进行移植
SELECT * FROM information_schema.character_sets ;
尽pipe名称是复数,但它只显示一行,报告当前的数据库/目录。
第三列是character_set_name
:
字符集的名称,当前实现为显示数据库编码的名称
因为有不止一个方法来剥皮猫:
psql -l
显示所有的数据库名称,编码等。