Vous n'êtes pas identifié(e).
Bonjour
Toutes les bases sont codées en UTF8, y compris la base postgres.
Lors de l'utilisation du menu "Outils/Etat du serveur" de pgAdmin celui-ci sort en erreur séquence d'octets invalide pour l'encodage « UTF8 ...
Voici ce que l'on trouve dans les fichiers log (postgresql-xxxx....log)
2011-02-23 20:19:07 CET LOG: le système de bases de données a été arrêté à 2011-02-23 20:18:53 CET
2011-02-23 20:19:50 CET ERREUR: séquence d'octets invalide pour l'encodage « UTF8 » : 0xe86d65
2011-02-23 20:19:50 CET INSTRUCTION : SELECT pg_file_read('pg_log/postgresql-2011-02-23_201907.log', 0, 50000)
Si on execute le select pg_file_read... on obtient directement la meme erreur.
En y regardant de plus pres, c'est en fait la codification des fichiers log qui est en ASCII au lieu d'être codée en UTF8.
Quelqu'un pourrait-il me dire où se trouve le parametre la codification des fichiers log ?
Note : J'ai déjà essayé sans succés :
- Dans postgresql.conf client_encoding = UTF8
- Dans pgAdmin Menu Fichier\preference... Lire et écrire les fichiers au format UTF8
Version de pgAdmin 1.12.1
de postgresql 9.0
Merci pour la réponse
Philippe
Hors ligne
Il s'agit du paramètre lc_messages. Pouvez-vous nous indiquer sa valeur ? j'avoue que je serais très étonné qu'il soit en autre chose qu'UTF-8. Cependant, cette erreur a déjà été rencontrée par un allemand qui l'a rapporté sur la liste pgadmin-support. J'aimerais trouver la raison du problème et, dans le cas d'un bug sur pgAdmin, le corriger rapidement.
Guillaume.
Hors ligne
Voici sa valeur
lc_messages = 'French, France'
Comment y placer UTF8 ?
Merci
Hors ligne
Oups, ça sent le Windows ça. De toute façon, vous ne devriez pas utiliser du français pour les traces. Essayez avec lc_messages='C', ça devrait être bon (ce n'est pas de l'UTF-8 mais de l'ASCII simple, sans accent... et du coup facilement traduisible en UTF-8).
Guillaume.
Hors ligne
Je confirme : j'ai déjà eu ce problème. quand les logs ne sont pas en UTF-8, les accents font planter la fenêtre de statut.
Une solution intermédiaire : PGAdmin pourrait intercepter l'erreur et dans ce cas ne pas afficher la panneau de trace dans la fenêtre de statut....
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
Meme avec lc_messages = 'fr_FR.UTF-8' les logs restent en asccii
Hors ligne
Si vous venez juste de changer l'option, il est très probable que le fichier de logs en cours soit un mixte de Latin et d'UTF-8.
Je vous conseille d'essayer à nouveau en forçant la rotation du fichier de log :
1- arreter le serveur
2- renommer le fichier de log courant
3- relancer le server
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
A chaque changement de paramètres je fais un arret / relance du serveur.
Une précision, Sur une autre machine, j'ai encore la version précédente, (postgresql 8.4 et pgAdmin 1.10.0) avec laquelle je n'ai pas cette erreur.
Bien sur j'ai observé les fichiers postgresql.config sans y voir de différence .
En particulier voici les champs de la version 8.4
#client_encoding = sql_ascii # actually, defaults to database
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'French, France' # locale for system error message
lc_monetary = 'French, France' # locale for monetary formatting
lc_numeric = 'French, France' # locale for number formatting
lc_time = 'French, France' # locale for time formatting
Hors ligne
Note: En version 8.4 les fichiers log sont en ascii
Hors ligne
Il y a eu un rapport de bug lors de la sortie de PostgreSQL 9.0 rc1 mais je n'ai pas l'impression que ça a été plus loin. Le rapport de bug se trouve sur http://archives.postgresql.org/pgsql-bu … g00138.php .
Guillaume.
Hors ligne
Merci Guillaume
Cependant je viens choisir une solution plus radicale, en utilisant lc_messages = 'us_US', ainsi je n'ai plus de problème avec les accents.
Of course, l'utilisateur verra venir les erreurs en anglais.
cordialement
Ph
Hors ligne