UTF8/Unicode sur Arduino

Bonjour à tous,

Je souhaiterai convertir un chiffre décimal en caractères via la table Unicode/UTF8 cependant malgré de nombreuses recherches je ne trouve que des topics indiquant comment convertir un caractère en hexadécimal par la table Unicode/UTF8.

D'avance merci pour temps et votre aide,

Bien cordialement

Il faut en dire plus sur ton besoin, j'ai du mal à saisir. Pour par exemple un 'à' tu veux créer le code U+00E0 ? C'est de l'hexa, ça fait 224 en décimal.
Donc que veux-tu faire à partir de là ?

Affiché où ? Un chiffre en décimal n’a pas besoin d’UTF8, les digits des 0 à 9 et le point où la Virgule sont dans l’ASCII de base (44, 46 et 48 à 57 en ASCII)

Un texte en UTF-8 est simple: il est partout en ASCII, et dès qu'on a besoin d'un caractère appartenant à l'Unicode, on utilise un caractère spécial signalant "attention, le caractère suivant est en Unicode".

Si c'est pour un affichage il me semble que cela dépend aussi du moniteur d'affichage, certains sont plus évolués que d'autres.
En particulier celui fourni avec l'IDE est assez minimaliste.
A mes débuts avec arduino j'avais essayé différents moniteurs (Linux) et certains affichaient dirrectement les caractères accentués, mais je ne me rappelle plus lesquels, la flemme faisant utiliser celui fourni avec l'IDE.

En passant, décimal ou hexadécimal ne sont que deux manières différentes d'indiquer une même valeur.

On appelle ça un littéral, c'est-à-dire une suite de caractères dans le code source, qui permet de définir une valeur constante.

Tu peux coder int toto = 15; ou bien int toto = 0x0F; ou bien int toto = 0b1111; cela revient au même : toto est toujours une variable de type entier, qui prend la valeur 15.

Même le type char est un type entier.
Ainsi char c='A'; c'est pareil que char c = 65; ou encore char c = 0x41 ou encore char c = 'B' - 1;

Peut-être que ta confusion vient de là?

et 0o17 ?

Wé alors l'octal je n'ai jamais compris qui l'utilise et pourquoi.

N'est ce pas un truc de dinosaure? :slight_smile:

D’Arduinosaure !!! :wink:


Hop : 3000ème message !!!


Bonjour,

Si tu veux que 72 te donne 'H' il suffit de l'afficher en temps que caractère.
Essaies par exemple Serial.print((char)test);

Tu peux utiliser itoa() pour convertir en ascii ou utf8.
Si tu expliquais pourquoi tu veux convertir en unicode.

Ou dans l’autre sens

char caractere = ‘H’;
Serial.print(caractere); Serial.print(F(“ —> “)); 
Serial.println((int) caractere);

L'intérêt de l'unicode est de pouvoir afficher des caractères spéciaux "àçéèù" par exemple. C'est peut-être ces caractères que notre ami veut utiliser ou afficher.

Si notre ami pouvait s’exprimer plus clairement on pourrait (peut-être) l’aider :slight_smile: