|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité de passage
![]() Pierre Étudiant Inscription : juillet 2011 Messages : 7 ![]() |
Bonjour à tous et à toutes
pour mon projet de stage, je dois gérer une grande quantité de bases de données et pour cela les importer dans PostGre avec COPY mais lors de l'import de données, survient un problème d'encodage de caractères dont voici le message d'erreur : "ERREUR: séquence d'octets invalide pour l'encodage « UTF8 » : 0xff ASTUCE : Cette erreur peut aussi survenir si la séquence d'octets ne correspond pas au jeu de caractères attendu par le serveur, le jeu étant contrôlé par « client_encoding »." Je pense que cela vient principalement des accents sur les e (é, è etc ...) et autres caracteres du genre. Après quelques recherches diverses, j'ai vu qu'il fallait changer le client_encoding en écrivant "\encoding LATIN1". Cela ne marchant pas, j'ai testé l'autre solution qui devait régler tout ça en tapant : "SET client_encoding TO 'WIN1252';". Là encore, j'obtient un message d'erreur Citation:
D'avance merci ! |
|
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Dans un fichier texte normal, il n'y a pas de caractère 0x00.
Sinon l'instruction SET client_encoding TO encodage_du_fichier est la bonne méthode. Mais ça ne peut marcher que si le fichier est propre et que tout le contenu a le même encodage. Si ce n'est pas le cas il n'y a pas tellement d'autre solution que de nettoyer le contenu avant import. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Pierre Étudiant Inscription : juillet 2011 Messages : 7 ![]() |
Bonjour à nouveau
quand j'ouvre mon fichier, je peux sélectionner son encodage et je choisis 'Unicode' car c'est sous ce format que mon tableau est propre et correct. Seulement quand avec PostGre, je change avec la commande SET client_encoding TO 'Unicode', il me sort toujours UTF-8 quand je tape \encoding; et refuse l'importation. Je dois changer son encodage et le nettoyer donc pour pouvoir l'importer convenablement? |
|
|
00
|
|
|
#4 | |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Dans le contexte de postgresql, UTF8 et UNICODE sont des termes synonymes, le fait qu'il réponde UTF8 quand on lui dit UNICODE n'a pas d'importance.
D'après ce message d'erreur cité dans la discussion: Citation:
Le fichier est peut-être en UTF16 avec BOM ou UTF8 avec BOM. Pour l'importer dans postgresql il faudrait qu'il soit UTF8 sans BOM. |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Pierre Étudiant Inscription : juillet 2011 Messages : 7 ![]() |
J'ai réussi
![]() Merci quand même pour vos explications mais j'ai passé mon fichier en CSV et l'import a été plus simple même si j'ai dû pour cela créer une table ainsi que rentrer à la main une à une les colonnes de ma table. Merci encore parce que c'est toujours ça d'appris sur le sujet =] |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() Demazy MbellaDéveloppeur Web Inscription : août 2010 Messages : 620 ![]() |
ça ne résout pas vraiment ton problème car t'as fait des chose une par une.
A mon avis tu devrais à l'aide d'un éditeur comme Notepad ++ passer tout ton fichier txt en UTF8-sans Bom et essayer de vérifier s'il apparaît des caractères indésirables. Si oui, tu les corrige pour avoir un texte correct et ensuite tu l'importes !
__________________
Trois personnes peuvent garder un secret si deux d'entre elles sont mortes. :Benjamin FranklinL'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent : Benjamin FranklinLe hasard, c'est le déguisement que prend Dieu pour voyager incognito : Albert Einsteinbon je m'arrête là au risque de me faire buter
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com