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 :

Encodage de la fenêtre DOS permettant d'exécuter psql


Sujet :

PostgreSQL

  1. #1
    En attente de confirmation mail
    Inscrit en
    Novembre 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 37
    Points : 31
    Points
    31
    Par défaut Encodage de la fenêtre DOS permettant d'exécuter psql
    Bonjour,

    Je possède une BD postgres version 8.1.0 installée avec un encodage UTF8. Le client psql fonctionne lui aussi avec un encodage UTF8 (commande \encoding pour vérifier). Mon problème est qu'il m'est totalement impossible d'insérer des données contenant des caractères accentués.

    Je pense que le problème vient de ma fenêtre DOS qui est par défaut paramétrée avec une page de code 850. Si je laisse cet encodage, au moment ou je suis logué sur le serveur postgres, un warning m'avertit que je n'utilise pas la bonne page de code et que la page de code "correcte" devait être la 1252.

    J'ai essayé de modifier l'encodage de ma fenêtre DOS (chcp) afin de la faire passer en 1252. Lorsque je me logue à nouveau sur postgres, je n'ai plus de warning mais le problème reste le même ... Pour info voici le message d'erreur que j'obtient lorsque j'essaie d'insérer des données avec des caractères accentués :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     invalid UTF-8 byte sequence detected near byte 0xe9
    J'ai également modifié la police de caractères de ma console en Lucida Console mais cela ne change absolument rien.

    Avez-vous déjà eu un problème similaire ?

    Merci d'avance !

    jh0483

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut !

    J'ai exactement le même problème.
    Locale : French, Belgium
    Encodage : UTF8

    L'erreur survient à chaque fois que je veux faire un "\d" par exemple.

    Tu as trouvé une solution ?

  3. #3
    En attente de confirmation mail
    Inscrit en
    Novembre 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Hello,

    non pour l'instant toujours rien trouvé ....

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Je crois qu'il y a un problème avec le client psql en fait.
    Si j'utilise l'encodage latin1 dans le client, ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    postgres=# \d
    ERROR:  invalid UTF-8 byte sequence detected near byte 0xe9
    postgres=# set client_encoding="latin1";
    SET
    postgres=# \d
    Pas de relations trouvées.
    postgres=#
    La doc de PostGreSQL précise qu'on peut définir le client_encoding au niveau du serveur pour que toute connexion utilise cet encodage, je vais donc utiliser ça en attendant un vrai correctif.

  5. #5
    En attente de confirmation mail
    Inscrit en
    Novembre 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Mais quand tu fais un set client_encoding, tu modifies l'encodages de psql ou de la fenêtre DOS ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par jh0483
    Mais quand tu fais un set client_encoding, tu modifies l'encodages de psql ou de la fenêtre DOS ?
    Non uniquement l'encodage du client.
    PostGreSQL fait une conversion automatique lorsque l'encodage du client est différent de celui de la base de données. Donc les données sont bien stockées en UTF8, mais le client les reçoit et les envoie en Latin1.
    Ref dans la doc : http://www.postgresql.org/docs/8.1/s...multibyte.html

  7. #7
    En attente de confirmation mail
    Inscrit en
    Novembre 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    OK, merci pour les précieux renseignements. Je n'ai malheureusement pas le temps de tester tout ceci maintenant mais si tu as une adresse email où je peux te joindre je te donnerai volontier des nouvelles sur mes prochains tests (si ça t'intéresses bien entendu).

    Bonne journée !!

Discussions similaires

  1. [Débutant] Ouverture de fenêtre DOS à l'exécution
    Par noftal dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/08/2013, 01h23
  2. Remonter une valeur d'un programme VB exécuté d'une fenêtre DOS
    Par Coin dans le forum VB 6 et antérieur
    Réponses: 31
    Dernier message: 12/03/2007, 17h50
  3. Réponses: 2
    Dernier message: 02/12/2004, 08h33
  4. Conserver la fenêtre résultat de l'exécution
    Par ndoye_zaff dans le forum ANT
    Réponses: 3
    Dernier message: 01/03/2004, 16h02
  5. Modifier la taille de la fenêtre DOS
    Par bobgeldof7 dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 31/01/2004, 03h10

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