I have a database, and I need to know the default encoding for the database. I want to get it from the command line.
7 Answers
From the command line:
psql my_database -c 'SHOW SERVER_ENCODING'
From within psql, an SQL IDE or an API:
SHOW SERVER_ENCODING;
2 Comments
SHOW SERVER_ENCODING;tl;dr
SELECT character_set_name
FROM information_schema.character_sets
;
Standard way: information_schema
From the SQL-standard schema information_schema present in every database/catalog, use the defined view named character_sets. This approach should be portable across all standard database systems.
SELECT *
FROM information_schema.character_sets
;
Despite the name being plural, it shows only a single row, reporting on the current database/catalog.
The third column is character_set_name:
Name of the character set, currently implemented as showing the name of the database encoding
Comments
Another way of getting the server encoding (described at https://pgpedia.info/s/server_encoding.html):
SELECT current_setting('server_encoding');
One can also use a similar select to get other settings, e.g. 'client_encoding'.
