Получение кодировки базы данных Postgres

143

У меня есть база данных, и мне нужно знать кодировку по умолчанию для базы данных. Я хочу получить его из командной строки.

Элитмиар
источник

Ответы:

179

Из командной строки:

psql my_database -c 'SHOW SERVER_ENCODING'

Изнутри psql, SQL IDE или API:

SHOW SERVER_ENCODING
Богемный
источник
Разве это не параметр уровня сервера (по умолчанию, используемый для вновь создаваемых баз данных), а не параметр уровня базы данных / каталога, о котором просили в Вопросе?
Basil
5
Обратите внимание, что внутри psql в конце должна быть точка с запятой. ie SHOW SERVER_ENCODING;
Джон Бернхардт
50

Способ 1:

Если вы уже вошли на сервер db, просто скопируйте и вставьте это.

SHOW SERVER_ENCODING;

Результат:

  server_encoding 
-----------------  
UTF8

Для клиентской кодировки:

 SHOW CLIENT_ENCODING;

Способ 2:

Опять же, если вы уже вошли в систему, используйте это, чтобы получить результат на основе списка

\l 
Бег Адитья
источник
42

Программное решение:

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
Питер Эйзентраут
источник
32

Если вы хотите получить кодировки базы данных:

psql  -U postgres -h somehost --list

Вы увидите что-то вроде:

List of databases
           Name         |  Owner   | Encoding
------------------------+----------+----------
db1                     | postgres | UTF8
Greenisha
источник
13

Потому что есть несколько способов снять шкуру с кошки:

psql -l

Показывает все имена базы данных, кодировку и многое другое.

AMADANON Inc.
источник
6

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Стандартный способ: information_schema

Из стандартной схемы SQL, information_schema присутствующей в каждой базе данных / каталоге, используйте определенное представление с именем character_sets. Этот подход должен быть переносимым для всех стандартных систем баз данных .

SELECT * 
FROM information_schema.character_sets 
;

Несмотря на множественное число, он показывает только одну строку, сообщающую о текущей базе данных / каталоге.

снимок экрана pgAdmin 4 с результатами запроса, показанными выше

Третий столбец character_set_name:

Имя набора символов, в настоящее время реализованного как отображение имени кодировки базы данных

Василий Бурк
источник