PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 24/07/2011 18:16:43

nicolaptop
Membre

Caractères accentués

Bonjour à tous,

Je dispose d'une machine virtuelle sous Debian Squeeze sur laquelle j'ai installé PostgreSQL 8.4 via le gestionnaire de packages. Cette machine est utilisée uniquement pour apprendre à utiliser PostgreSQL et créée à partir de Virtualbox.
Je suis confronté à deux problèmes liés aux caractères accentués que je n'arrive pas à résoudre.

Le premier concerne la connexion à mon instance PostgreSQL depuis ma machine virtuelle, en local. Pour cela, j'utilise la commande suivante :

$ psql tp4

avec tp4 le nom de ma base.

La connexion fonctionne parfaitement et le prompt tp4=# s'affiche. Cependant, lorsque je rentre un caractère accentué tel que 'é', il ne s'affiche pas sur la ligne de commande. L'encodage que j'utilise est bien l'UTF-8 que ce soit pour psql, pour le serveur, pour ma base de données et pour mon terminal :

tp4=# show client_encoding;
 client_encoding 
-----------------
 UTF8
(1 ligne)

tp4=# show server_encoding;
 server_encoding 
-----------------
 UTF8
(1 ligne)

tp4=# \l
                                Liste des bases de données
    Nom    | Propriétaire | Encodage |     Tri     | Type caract. |    Droits d'accès     
-----------+--------------+----------+-------------+--------------+-----------------------
 tp4       | postgres     | UTF8     | fr_FR.UTF-8 | fr_FR.UTF-8  |

Le terminal utilisé est gnome-terminal. Je précise que tant que je ne suis pas connecté avec psql à la base de données, les caractères accentués apparaissent dans mon terminal.

Mon deuxième problème concerne l'affichage des caractères accentués dans les messages d'erreur. Mes messages d'erreur sont stockés dans /var/log/postgresql/postgresql-8.4-main.log. Ce fichier est de type UTF-8 :

$ sudo file /var/log/postgresql/postgresql-8.4-main.log
/var/log/postgresql/postgresql-8.4-main.log: UTF-8 Unicode text

Pourtant l'affichage des caractères accentués ne fonctionne pas :

$ sudo grep '2011-07-24 17:44:21' /var/log/postgresql/postgresql-8.4-main.log
2011-07-24 17:44:21 CEST LOG:  paquet de d?marrage incomplet

Voici un extrait de mon fichier postgresql.conf :

$ sudo egrep 'lc|encoding' /etc/postgresql/8.4/main/postgresql.conf
#client_encoding = sql_ascii		# actually, defaults to database
					# encoding
lc_messages = 'fr_FR.UTF-8'			# locale for system error message
lc_monetary = 'fr_FR.UTF-8'			# locale for monetary formatting
lc_numeric = 'fr_FR.UTF-8'			# locale for number formatting
lc_time = 'fr_FR.UTF-8'				# locale for time formatting
#backslash_quote = safe_encoding	# on, off, or safe_encoding

Voici un extrait de mes 'locales' :

$ locale
LANG=fr_FR.utf8
LC_CTYPE="fr_FR.utf8"
LC_NUMERIC="fr_FR.utf8"
LC_TIME="fr_FR.utf8"
LC_COLLATE="fr_FR.utf8"
LC_MONETARY="fr_FR.utf8"
LC_MESSAGES="fr_FR.utf8"
LC_PAPER="fr_FR.utf8"
LC_NAME="fr_FR.utf8"
LC_ADDRESS="fr_FR.utf8"
LC_TELEPHONE="fr_FR.utf8"
LC_MEASUREMENT="fr_FR.utf8"
LC_IDENTIFICATION="fr_FR.utf8"
LC_ALL=

Pour le premier problème, j'ai réussi à trouver une solution de contournement. Je me connecte depuis le système hôte de ma machine virtuelle via une connexion TCP/IP à l'instance PostgreSQL. Le problème d'affichage des caractères accentués ne se pose plus mais j'aimerai tout de même en comprendre sa raison.

Merci d'avance pour votre aide sur ces deux problèmes.

Hors ligne

#2 24/07/2011 19:06:50

gleu
Administrateur

Re : Caractères accentués

Je pense que ce post (http://forums.postgresql.fr/viewtopic.php?id=1387) va vous intéresser.


Guillaume.

Hors ligne

#3 24/07/2011 19:27:04

nicolaptop
Membre

Re : Caractères accentués

Bonsoir,

Merci pour cette réponse.
Je suis désolé de faire "double emploi" avec ce post. Je précise que j'avais effectué des recherches dans les posts du forum avant de créer celui-ci mais pas sur les bons mots.

Bonne soirée.

Hors ligne

#4 24/07/2011 21:13:28

gleu
Administrateur

Re : Caractères accentués

Pas de soucis smile


Guillaume.

Hors ligne

Pied de page des forums