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 utf8 - Encoding


Sujet :

PostgreSQL

  1. #1
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut Postgresql utf8 - Encoding
    Bonjour,

    J'ai une base de donnees cree en utf8. Dans celle ci j'ai un table (elle aussi en utf8).
    Lorsque j'essaye d'inserer des donnees (un mot contenant des accents ) j'obtiens le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    invalid byte sequence for encoding "UTF8": 0xe96520
    Severity: ERROR
    Code: 22021
    Hint: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
    Inversement lorsque j'insere directement dans la bdd des données et que je les recupere dans le programme j'obtiensdes caracteres etranges (exemple école devient école )

    Pourtant l'utf 8 est cense code les accents non?
    Qulequ'un aurait une idee?
    D'avance merci.

    (PS: mon application qui se connecte a la bdd est code en c#)

  2. #2
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Essaie d'entrer la commande suivante dans ta session postgresql avant de faire tes requêtes : Ca devrait permettre de reconnaître les caractères francophones
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    Merci pour l'info,
    Euh ? par contre comment je fais pour saisir cette commande? :s
    C'est pas du sql ca. :s

  4. #4
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    Ca marche , je peux t'embrasser scheu???

    Donc avant de faire sa requete il faut effectivement dans sa session forcer le format d'encodage

    En c# ca donne ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      String requ1 = "SET client_encoding TO 'LATIN9';";
      NpgsqlCommand command1 = new NpgsqlCommand(requ1, connexion);
      command1.ExecuteNonQuery();
    merci scheu

  5. #5
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Content d'avoir pu t'aider
    Effectivement LATIN9 ça doit aussi marcher, je ne sais plus la différence mais en gros tu es obligé de changer l'encodage côté client (le jeu de caractères) pour qu'il reconnaisse les caractères français (accents + cédille)
    Le "\encoding LATIN1" oui c'était spécifique à l'invite de commande postgresql (psql)
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

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

Discussions similaires

  1. UTF8-Encode ne marche pas avec la fonction "Filter"
    Par messahel dans le forum Bases de données
    Réponses: 8
    Dernier message: 17/10/2011, 10h57
  2. UTF8 : encode et decode
    Par diam's dans le forum Langage
    Réponses: 5
    Dernier message: 08/09/2010, 10h16
  3. flux xml avec é : Invalid UTF8 encoding
    Par Sun03 dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 07/02/2010, 19h12
  4. Echec Creation BD UTF8 / PostgreSQL 8.0.1
    Par monne68 dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 23/07/2007, 11h14
  5. Encoding ISO-8859-15 et UTF8
    Par calfater dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/06/2006, 21h12

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