Go Down

Topic: UTF8/Unicode sur Arduino (Read 460 times) previous topic - next topic

SwitchMds

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

lesept

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à ?
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

J-M-L

#2
Dec 03, 2018, 10:48 pm Last Edit: Dec 03, 2018, 10:52 pm by J-M-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".
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

68tjs

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.

bricoleau

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à?
Tutoriels arduino : http://forum.arduino.cc/index.php?topic=398112.0

lesept

A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

bricoleau

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

N'est ce pas un truc de dinosaure?  :)
Tutoriels arduino : http://forum.arduino.cc/index.php?topic=398112.0

lesept

#7
Dec 04, 2018, 06:25 pm Last Edit: Dec 04, 2018, 06:27 pm by lesept
D'Arduinosaure !!!  :smiley-wink:


Hop : 3000ème message !!!

A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

kamill

#8
Dec 04, 2018, 07:51 pm Last Edit: Dec 04, 2018, 07:59 pm by kamill
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.

J-M-L

#9
Dec 04, 2018, 09:22 pm Last Edit: Dec 04, 2018, 09:23 pm by J-M-L
Ou dans l'autre sens
Code: [Select]
char caractere = 'H';
Serial.print(caractere); Serial.print(F(" --> "));
Serial.println((int) caractere);


Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

lesept

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.
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

J-M-L

#11
Dec 04, 2018, 09:54 pm Last Edit: Dec 04, 2018, 09:54 pm by J-M-L
Si notre ami pouvait s'exprimer plus clairement on pourrait (peut-être) l'aider :)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Go Up