Remplacement de caractères accentués


bonjour,

je récupère une chaine de caractère via un http (réponse en iso-8859-1) et je souhaite l'afficher sur un écran lcd.

cette chaîne de caractère pouvant contenir des caractères accentués, je cherche à les remplacer par des caractères non accentués en utilisant string.replace avant d'afficher sur mon écran.

cela ne fonctionne pas.

ci-dessous mon code (expurger de toute la partie extraction / lcd):

1 - en fin de setup je remplace des accents dans une chaine de caractère accentuée, cela fonctionne.
2 - dans le loop j'essaye de faire la meme chose sur les caractères que je récupère de ma réponse http.
cela fonctionne quand j'essaye de substituer un "d" par un "x"
cela ne fonctionne plus quand j'essaye de substituer un "é" par un "e"

je ne comprends pas quelle différence il y entre mes 2 tests, mais j'imagine que j'ai un problème d'encodage quelque part.

auriez vous une piste s'il vous plait ?

merci !

code: [select]
void setup() {
// open serial communications , wait port open:
 serial.begin(9600);

 // start ethernet connection:
 if (ethernet.begin(mac) == 0) {
   serial.println("failed configure ethernet using dhcp");
   ethernet.begin(mac, ip);
 }
 // give ethernet shield second initialize:
 delay(1000);
 serial.println("connecting...");

 // if connection, report via serial:
 if (client.connect(server, 80)) {
   serial.println("connected");
   // make http request:
     client.println("get /index.php?api_lang=fr&localidad=48949&affiliate_id=4d2q7ug3fmoa&v=2 http/1.1");
   client.println("host: api.tameteo.com");
   client.println("connection: close");
   client.println();
 }
 else {
   // kf didn't connection server:
   serial.println("connection failed");
 }
 char *tests = "bébébébébé";
 string test(tests);
 serial.println(test);
 test.replace("é","e");
 serial.println(test);
}

void loop()
{
 // if there incoming bytes available
 // server, read them , print them:
 if (client.available()) {
   char c = client.read();
   string str(c);
   str.replace("é","e");
   str.replace("d","x");
   serial.print(str);
 }

 // if server's disconnected, stop client:
 if (!client.connected()) {
   serial.println();
   serial.println("disconnecting.");
   client.stop();

   // nothing forevermore:
   while(true);
 }
}

bonjour,
pourquoi ne pas faire l'inverse?
faire le sur un fichier php qui lui va traiter avec str_replace?

lorsque tu recois un caractère avec accent, c'est un code et non la lettre accentuée, donc normal que ca ne fonctionne pas.
http://www.codeshttp.com/iso88591.htm
quote
è    è


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Remplacement de caractères accentués


arduino

Comments

Popular posts from this blog

opencv3, tbb and rasp pi 2 - Raspberry Pi Forums

small ethernet problem - Raspberry Pi Forums

Multithumb configuration params not working? - Joomla! Forum - community, help and support