Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2007, 23h17   #1
Invité de passage
 
Inscription : avril 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 21
Points : 2
Points : 2
Par défaut problème d'encodage de caractères

Bonjour,
je suis sous mac os, j'ai postgreSQL version 8.2.3 et je souhaite recréer une base à partir d’un dump.
Le problème c'est que quand je lance ma commande psql -e {nom_de_la_base} < {nom_du_fichier.dump}, j'ai cette erreur qui revient : "ERROR : invalid byte sequence for encoding "UTF8" 0x92etc...".
Mon fichier dump vient d'un system unix, quand je le lis avec vi, je voit des ? à la place des é par exemple.
Je peux très bien me passer des caractères à problème, je peux donc les supprimer. Mais comment?
Mon fichier fait 800Mo, je n'arrive pas à l'ouvrir avec un editeur de texte car ça demande trop de ressource.
J'ai deux "solutions" :
1) - une commande unix permettant de remplacer tous ces caractères. J'ai essayé avec un
sed -e "s/?/e/g" monFichier
et
sed -i.orig "s/?/e/g" monFichier
sans succès.
2) - changer l'encodage au niveau de postgresql. Pour l'instant j'ai fait un /usr/local/bin/initdb -E UTF8 -D /usr/local/pgsql/data .

Quelqu'un a-t-il une solution à me proposer?

D'avance merci.
newteam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 14h48   #2
Membre éclairé
 
Inscription : janvier 2005
Messages : 336
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2005
Messages : 336
Points : 353
Points : 353
Bonjour

Le problème ne provient pas du système d'exploitation, mais bien d'un problème d'encodage

Dans quel encodage se trouve la base de données source, ainsi que la base de données de destination.

Sinon la librairie iconv sera vous convertir le fichier si celui n'est pas en UTF8.
__________________
Christophe Chauvet (KrysKool)
kryskool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 19h18   #3
Invité de passage
 
Inscription : avril 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 21
Points : 2
Points : 2
Merci, j'ai utilisé la commande iconv ainsi :

iconv -f ISO-8859-1 -t UTF-8 fichier.dump

mon fichier possède toujours quelques caractères "bizarres" quand je faire un vi en ligne de commandes mais postgres ne me génère plus de messages d'erreurs donc ça me convient.

Si j'ai mis ISO-8859-1 c'est un peu au hasard car je ne sais pas comment identifier dans quel encodage se trouve ma base de données source.
newteam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 09h58   #4
Membre éclairé
 
Inscription : janvier 2005
Messages : 336
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2005
Messages : 336
Points : 353
Points : 353
Si vous avez des données contenant le symbole € (Euros) il faudrait utiliser l'encodage ISO-8859-15.
__________________
Christophe Chauvet (KrysKool)
kryskool est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h36.


 
 
 
 
Partenaires

Hébergement Web