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 !
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
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
Post a Comment