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.
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
	                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 
	                Une solution programmatique:
SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';
	                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
	                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.
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
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.
