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 :

postgresql et convertion UTF8


Sujet :

PostgreSQL

  1. #1
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut postgresql et convertion UTF8
    Bonjour,

    Je rencontre aujourd'hui un très gros problème.

    J'utilise LEI sur un serveur Linux ce dernier me permet via des connecteurs de transférer des données d'une base db2 AS400 vers une base de données postgresql.

    Depuis peut, le format de la table postgresql a changé nous sommes passé de latin à utf-8 et je me heurte donc à un problème de conversion de données depuis l'as400.

    J'utilise unixodbc avec un connecteur pgsqlodbc j'ai indiqué dans mon odbcinst.ini

    "client charset = UTF-8"

    mais malheureusement rien n'y fait je me retrouve toujours avec des plantage lorsque je rencontre des caractères spéciaux.

    quelqu'un pourrait il m'aidé?

    Ps: changer le format des tables AS400 est impossible.

    Merci.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  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
    En principe, la première chose à connaitre est l'encodage des données de la base sur l'AS400. Si c'est latin1, chose probable si ça fonctionnait bien quand la base pg était aussi en latin1, alors mettre plutôt
    "client charset = LATIN1" dans le pilote ODBC.

  3. #3
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    alors l'encodage de l'as400 et obcdic j'ai oublié de précisé que j'utilise LEI cet outil me permet via un premier connecteur d'aller prendre les données de l'as400 (connecteur odbc DB2) et via le second connecteur pgsql de les transférer vers postgresql.

    J'ai modifié "client charset = LATIN9" mais toujours le même plantage.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  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
    mais toujours le même plantage.
    Un message d'erreur peut-être?

  5. #5
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    Citation Envoyé par estofilo Voir le message
    Un message d'erreur peut-être?
    oui en effet ça pourrais être plus parlant

    Error: [unixODBC]ERROR: invalid byte sequence for encoding "UTF8": 0xc74f;
    Error while executing the query, Connector 'PostgreAtrium', Method -Update- (7)
    11/16/2009 16:45:18 Current record key values at the time of the replication error --
    je recherche également des info en parallèle chez pgsql mais pour l'instant pas grand chose à me mettre sous la dent.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  6. #6
    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
    L'erreur implique que l'encodage de la connection postgresql côté client est en UTF8. Donc ça implique aussi que ce paramètre "client charset" n'est pas pris en compte dans le fichier de configuration ODBC.
    Suggestions: éventuellement essayer le driver ANSI au lieu du driver UNICODE pour voir si celui-là passe. Une autre chose à tester comme contournement peut être de configurer avec ALTER USER l'utilisateur de base de données pour lui mettre un encodage latin par défaut.
    Ca peut le faire si le driver ODBC ne force pas le client_encoding de son côté.

  7. #7
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    Bon,
    Après modification du client_encoding, etc ... je me retrouve toujours avec la même erreur.

    Donc résultat des courses je vais voir pour sélectionner un autre outils type kittle pour transférer mes données

    Merci tout de même pour l'aide fournie.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Converstion utf8 -> cp850 avec CONVERT()
    Par wylls dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/10/2011, 04h11
  2. Postgresql utf8 - Encoding
    Par xian21 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 20/06/2008, 08h49
  3. Echec Creation BD UTF8 / PostgreSQL 8.0.1
    Par monne68 dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 23/07/2007, 11h14
  4. Convertion implicite utf8 de la part d'Oracle ?
    Par Rakken dans le forum Administration
    Réponses: 11
    Dernier message: 27/11/2006, 10h26
  5. Réponses: 2
    Dernier message: 23/06/2004, 16h06

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