2011-06-23 3 views

Répondre

112

Depuis la ligne de commande:

psql my_database -c 'SHOW SERVER_ENCODING' 

De l'intérieur psql, un IDE SQL ou une API:

SHOW SERVER_ENCODING 
+0

N'est-ce pas le paramètre au niveau du serveur (par défaut utilisé pour les bases de données nouvellement créées) plutôt que le paramètre de niveau de base de données/catalogue demandé dans Question? –

26

Si vous souhaitez obtenir des codages de base de données:

psql -U postgres -h somehost --list 

Vous verrez certains chose comme:

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

Une solution programmatique:

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb'; 
36

Méthode 1:

Si vous êtes déjà connecté au serveur db, il suffit de copier et coller ce.

SHOW SERVER_ENCODING; 

Résultat:

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

pour le client encodage:

SHOW CLIENT_ENCODING; 

Méthode 2:

Encore une fois si vous êtes déjà connecté, l'utiliser pour obtenir la liste des résultats en fonction

\l 
2

tl; dr

SELECT character_set_name 
FROM information_schema.character_sets 
; 

façon standard: information_schema

De l'SQL-standard schemainformation_schema présentes dans chaque base de données/catalogue, utilisez la vue définie nommée character_sets. Cette approche devrait être portable sur all standard database systems.

SELECT * 
FROM information_schema.character_sets 
; 

Malgré le nom au pluriel, il affiche une seule ligne, rapportant sur la base de données/catalogue en cours.

screenshot of pgAdmin 4 with results of query shown above

La troisième colonne est character_set_name:

Nom du jeu de caractères, actuellement mis en œuvre comme indiquant le nom de l'encodage de base de données

0

Parce qu'il ya plus d'une façon de dépouiller un chat:

psql -l 

Affiche tous les noms de base de données, le codage, etc.

Questions connexes