problème d'encodage de caractères

newteam

Membre confirmé
13 Novembre 2006
36
0
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.
 
Deux possibilités:
  1. soit vous les lisez avec le Terminal sans avoir fait les réglages nécessaires au préalable (menu Terminal => Réglages de la fenêtre => Affichage);
  2. soit vous utilisez un xterm ou autre console, et vous pouvez chercher du côté de la manpage d'iconv, programme qui permet de modifier l'encodage d'un fichier.
 
Peut-&#234;tre faut-il v&#233;rifier la validit&#233; des fichiers apr&#232;s transfert (avec md5 par exemple).
 
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.
 
Pour vi, ça doit dépendre de la console avec laquelle vous l'ouvrez.
 
Encore faudrait-il qu'il y ait un support de UTF-8 par la version de vi, sans compter effectivement la configuration du Terminal.
 
Encore faudrait-il qu'il y ait un support de UTF-8 par la version de vi, sans compter effectivement la configuration du Terminal.

Bien vu. Je viens en effet d'essayer vim 7.0-243 dans un terminal configur&#233; pour utf-8: celui-ci n'est pas support&#233;. Par contre, emacs 22.0.93.1 le supporte:

M-x set-keyboard-coding-system ENTER utf-8
M-x set-terminal-coding-system ENTER utf-8


Ou bien dans le fichier de configuration ~/.emacs

(set-keyboard-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)