IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 PostgreSQL Discussion :

Problème de jeu de caractères lors d'un import de fichier .txt


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Problème de jeu de caractères lors d'un import de fichier .txt
    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
    "ERREUR: s�quence d'octets invalide pour l'encodage � WIN1252 � : 0x00
    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 n'ai pas trouvé d'autres solutions pour ce problème alors peut-on, si quelqu'un sait, importer cette base sans supprimer les accents ou en les remplaçant par des e tout simples?

    D'avance merci !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    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.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    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?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    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:
    "ERREUR: séquence d'octets invalide pour l'encodage « UTF8 » : 0xff
    on peut soupçonner que le problème est dû à la présence d'un BOM en début de fichier.

    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.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    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 =]

  6. #6
    Expert éminent
    Avatar de kdmbella
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2010
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 799
    Points : 7 039
    Points
    7 039
    Par défaut
    ç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 !
    "L'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent."
    - Benjamin Franklin

    De l'aide en Javascript , consultez la FAQ JS.

    De l'aide sur le FrameWork JS DHTMLX : posez vos questions sur le forum des Bibliothèques & Frameworks JS.

Discussions similaires

  1. Problème de jeu de caractère
    Par joboy84 dans le forum MySQL
    Réponses: 2
    Dernier message: 25/02/2010, 10h37
  2. Problème déclaration jeu de caractères
    Par S-Kayp dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 24/10/2008, 19h44
  3. Problème de jeu de caractères MySQL 5.0
    Par GofAcid dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 26/05/2007, 00h19
  4. Réponses: 5
    Dernier message: 03/08/2006, 20h40
  5. [DOM XML] Jeu de caractères
    Par dam_moreyllo dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 14/04/2006, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo