Ответ 1
Из командной строки:
psql my_database -c 'SHOW SERVER_ENCODING'
Внутри psql
, SQL IDE или API:
SHOW SERVER_ENCODING
У меня есть база данных, и мне нужно знать кодировку по умолчанию для базы данных. Я хочу получить его из командной строки.
Из командной строки:
psql my_database -c 'SHOW SERVER_ENCODING'
Внутри psql
, SQL IDE или API:
SHOW SERVER_ENCODING
Способ 1:
Если вы уже вошли на сервер db, просто скопируйте и вставьте это.
SHOW SERVER_ENCODING;
Результат:
server_encoding
-----------------
UTF8
Для клиентского кодирования:
SHOW CLIENT_ENCODING;
Способ 2:
Снова, если вы уже вошли в систему, используйте это, чтобы получить результат на основе списка.
\l
Программное решение:
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
SELECT character_set_name
FROM information_schema.character_sets
;
information_schema
Из стандартная SQL-схема information_schema
присутствует в каждой базе данных/каталоге, используйте определенное представление с именем character_sets
. Этот подход должен быть переносимым через все стандартные системы баз данных.
SELECT *
FROM information_schema.character_sets
;
Несмотря на то, что имя множественное, оно показывает только одну строку, сообщая о текущей базе данных/каталоге.
Третий столбец character_set_name
:
Название набора символов, в настоящее время реализованное как отображающее имя кодировки базы данных
Потому что есть более чем один способ обрезать кошку:
psql -l
Показывает все имена базы данных, кодировку и т.д.