Requêtes accentuées

Requêtes accentuées - SQL/NoSQL - Programmation

Marsh Posté le 11-05-2007 à 14:57:17    

Lorsque je lance une requête, qui contient des caractères accentués, par la fonction PQexec(conn, maRequete), je n'obtiens aucun résultat.
 
J'affiche maRequete par un printf, je la copie-colle sous pgAgmin III, j'ai des résultats.
 
Lorsque je n'utilise pas d'accents, tout va bien, seul les arguments accentués me causent des problèmes.
 
Y a-t-il un UpCase en PostGreSQL (si upcase(é) donne pour résultat E, ça devrait suffir)?
 
Merci de m'expliquer si vous avez déjà eu affaire à ce problème.

Reply

Marsh Posté le 11-05-2007 à 14:57:17   

Reply

Marsh Posté le 11-05-2007 à 15:18:27    

comment ça "arguments accentués" ?
 
me dit pas que t'as des champs dans ta base qui sont écrits avec des accents ? ! (idem pour le code PG/SQL)

Reply

Marsh Posté le 11-05-2007 à 16:25:09    

Les noms des champs ne sont pas accentués (déjà, c'est mal, mais en plus c'est pas possible puisque leurs noms sont en anglais), mais les valeurs possèdent parfois des accents (il s'agit de noms de rues)

Reply

Marsh Posté le 11-05-2007 à 16:30:49    

ben change le collate en FRENCH_AI_CI
(me demande pas comment on fait avec PG hein :D)


Message édité par MagicBuzz le 11-05-2007 à 16:31:27
Reply

Marsh Posté le 11-05-2007 à 16:47:35    

J'ai compris l'erreur, le programme me renvoyé LATIN1, tandis que dans PgAdmin la réponse était UNICODE
 
Un simple :
 
       strcpy(maRequete,"SET CLIENT_ENCODING TO \'UNICODE\'" );
       res = PQexec(conn,maRequete);
       if (PQresultStatus(res) != PGRES_COMMAND_OK)
       {
        fprintf(stderr, "failed: %s \n", PQerrorMessage(conn));
        fprintf(stderr, "maRequete= %s \n", maRequete);
        PQclear(res);
        exit_nicely(conn);
       }
 
       PQclear(res);
 
m'a permis d'en venir à bout

Reply

Marsh Posté le 11-05-2007 à 19:26:37    

ça résoud pas vraiment le problème de "accès <> ACCES", à moins que ta base ne soit déjà en AI_CI
 
là, t'as juste fait en sorte que "accès" écrit dans ton programme ne soit pas pas compris "accis" dans la base (et inversement), tu n'as pas résolu en soit le problème des accents.

Reply

Marsh Posté le 14-05-2007 à 12:12:35    

arf :(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed