Получение кодировки базы данных 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 


32

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

psql  -U postgres -h somehost --list

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

List of databases
           Name         |  Owner   | Encoding
------------------------+----------+----------
db1                     | postgres | UTF8

13

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

psql -l

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


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:

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.