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 23/02/2011 22:21:27

ph_morville
Membre

menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

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

#2 23/02/2011 22:40:42

gleu
Administrateur

Re : menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

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

#3 23/02/2011 23:29:04

ph_morville
Membre

Re : menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

Voici sa valeur
lc_messages = 'French, France'

Comment y placer UTF8 ?

Merci

Hors ligne

#4 23/02/2011 23:39:38

gleu
Administrateur

Re : menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

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

#5 24/02/2011 10:17:00

daamien
damien clochard

Re : menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

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....

Hors ligne

#6 24/02/2011 10:52:36

ph_morville
Membre

Re : menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

Meme avec  lc_messages = 'fr_FR.UTF-8'   les logs restent en asccii

Hors ligne

#7 24/02/2011 11:08:48

daamien
damien clochard

Re : menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

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

Hors ligne

#8 24/02/2011 11:17:15

ph_morville
Membre

Re : menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

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

#9 24/02/2011 11:33:53

ph_morville
Membre

Re : menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

Note: En version 8.4  les fichiers log sont en ascii

Hors ligne

#10 24/02/2011 12:42:10

gleu
Administrateur

Re : menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

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

#11 24/02/2011 12:56:30

ph_morville
Membre

Re : menu Outils/Etat du serveur ---> ERREUR séquence invalide UTF8

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

Pied de page des forums