Vous n'êtes pas identifié(e).
Pages : 1
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.
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.
Pages : 1