1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| char chaine_apache[MAX_CHAINE_APACHE] = "%c3%a8%c3";
char chaine_c[MAX_CHAINE_C];
int i, j;
for(i = 0, j = 0; chaine_apache[j] != '\0'; i++, j = 3*i)
{
int n;
sscanf(chaine_apache + j, "%%%x", &n); /* %% pour le % avant le code hexa et %x pour le code hexa */
chaine_c[i] = n;
}
chaine_c[i] = '\0';
/* Transcodage termine, mais pour afficher la chaine,
il faut encore eventuellement la transcoder vers le codage
utilise par l'environnement d'execution, qui n'est pas forcement le meme
que celui utilise par Apache. Sous Windows par exemple, dans
un environnement console, il faut faire passer la chaine a CharToOem
(en fait, ce n'est qu'une solution parmi tant d'autres). Enfin, vu que t'es
sous Linux, tu peux pour le moment oublier ce que je viens de te raconter,
mais ca reste toujours quelque chose de bon a savoir. Ici, on va donc
juste afficher la chaine sans traitement supplementaire.
*/
printf("%s\n", chaine_c); |
Partager