Requêtes accentuées - SQL/NoSQL - Programmation
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)
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)
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 )
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
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.
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.