Obtenir l'encodage D'une base de données Postgres

J'ai une base de données, et j'ai besoin de connaître l'encodage par défaut pour la base de données. Je veux obtenir à partir de la ligne de commande.

100
demandé sur jpmc26 2011-06-23 16:41:20

6 réponses

Depuis la ligne de commande:

psql my_database -c 'SHOW SERVER_ENCODING'

Depuis psql, un IDE SQL ou une API:

SHOW SERVER_ENCODING
124
répondu Bohemian 2017-01-22 21:21:06

Méthode 1:

Si vous êtes déjà connecté au serveur db, Copiez-le et collez-le.

SHOW SERVER_ENCODING;

Résultat:

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

Pour l'encodage Client:

 SHOW CLIENT_ENCODING;

Méthode 2:

Encore une fois si vous êtes déjà connecté, utilisez ceci pour obtenir le résultat basé sur la liste

\l 
40
répondu RunningAdithya 2015-04-28 05:40:07

Une solution programmatique:

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
29
répondu Peter Eisentraut 2011-06-25 11:45:17

Si vous voulez obtenir des encodages de base de données:

psql  -U postgres -h somehost --list

, Vous verrez quelque chose comme:

List of databases
           Name         |  Owner   | Encoding
------------------------+----------+----------
db1                     | postgres | UTF8
29
répondu Greenisha 2013-02-08 11:06:09

Tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
;

Manière Standard: information_schema

À partir du schéma SQL-standard information_schema présent dans chaque base de données / Catalogue, utilisez la vue définie nommée character_sets. Cette approche devrait être portable sur tous les systèmes de base de données standard .

SELECT * 
FROM information_schema.character_sets 
;

Bien que le nom soit pluriel, il n'affiche qu'une seule ligne, rendant compte de la base de données/catalogue en cours.

capture d'écran de pgAdmin 4 avec les résultats de la requête ci-dessus

La troisième colonne est character_set_name:

Nom du jeu de caractères, actuellement implémenté comme montrant le nom de l'encodage de la base de données

3
répondu Basil Bourque 2017-08-09 15:56:52

Parce Qu'il y a plus d'une façon de peler un chat:

psql -l

Affiche tous les noms de base de données, l'encodage, et plus encore.

3
répondu AMADANON Inc. 2017-10-05 21:00:12