Problème avec les accents en LUA

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
loteran
Messages : 59
Inscription : 29 oct. 2017, 18:59

Problème avec les accents en LUA

Message par loteran »

Bonjour à tous,

J'ai un petit soucis pour mon scipt de gestion de la télécommande freebox dû aux accents en français.
Cela concerne mon tuto, en effet dans ce tuto, je récupère une variable envoyé par IFTTT, ensuite je compare cette variable avec une chaine de caractère dans mon script lua.

Mon problème se pose quand la variable IFTTT contient un accent : exemple "éteins la freebox", domoticz me donne la valeur "�teins la"

Si dans mon script lua je mets IFTTT=="éteins la", cela ne fonctionne pas
Si dans mon script lua je mets IFTTT=="�teins la", cela ne fonctionne pas
Si dans mon script lua je mets IFTTT=="&eacuteteins la", cela ne fonctionne pas, logique éteins est différent de �teins

Dois je comparer uniquement "teins la" ? et zapper le premier caractère ? je pense que c'est possible mais je ne sais pas comment.

Une âme charitable pourrait elle me sortir de ce pétrin ?
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: Problème avec les accents en LUA

Message par Chrominator »

Visiblement tu ne récupère pas une chaîne unicode via IFTTT.

Si tu veux ne tester que la fin de la chaîne, tu peux utiliser string.sub.

si tu mets string.sub(IFTTT,-8) =="teins la", on est d'accord, c'est moche, mais ça devrait fonctionner.
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
loteran
Messages : 59
Inscription : 29 oct. 2017, 18:59

Re: Problème avec les accents en LUA

Message par loteran »

Chrominator a écrit :Visiblement tu ne récupère pas une chaîne unicode via IFTTT.

Si tu veux ne tester que la fin de la chaîne, tu peux utiliser string.sub.

si tu mets string.sub(IFTTT,-8) =="teins la", on est d'accord, c'est moche, mais ça devrait fonctionner.
Merci de ton retour, je m'arrachais les cheveux, ca marche impécable.

PS: Beau ou pas, c'est pas grave, ce qui compte c'est que cela fonctionne ;)
Répondre