Je voudrais acheter un écran LCD de Arduino pour afficher certains résultats d'un appel Web http; l'API Web renvoie un texte JSON codé en UTF-8.
J'ai lu que ICU est la voie à suivre pour gérer Unicode dans les programmes C / C ++ pour Arduino.
Mes questions:
pourrai-je afficher des caractères UTF-8 sur ce type d'écran ?
Existe-t-il des écrans LCD à caractères (abordables) capables d'afficher des caractères UTF-8?
Réponses:
Je ne suis pas très familier avec Arduino, mais regardons-le du point de vue LCD.
Presque tous les écrans LCD à caractères populaires utilisent le contrôleur HD44780 de nos jours (c'est ce que prend en charge la bibliothèque LiquidCrystal ). Ce contrôleur ne prend pas directement en charge UTF-8, chaque caractère est représenté par un seul octet.
Vous devez donc convertir manuellement les caractères UTF-8 en 8 bits. Le contrôleur possède un générateur de caractères intégré avec 208 5x8 et 32 5x10 caractères, plus jusqu'à 8 caractères définis par l'utilisateur (voir createChar ). Vous devez mapper chaque caractère d'entrée à l'un des caractères prédéfinis / personnalisés - vous ne pouvez évidemment afficher qu'un sous-ensemble de caractères UTF8, vous devez décider quels caractères vous souhaitez / pouvez afficher.
La conversion elle-même devrait être assez simple - il vous suffit d'itérer sur la chaîne UTF8, en mappant chaque caractère sur un seul octet. Vous voudrez probablement utiliser des tables de recherche pour rester simple. Faites-moi savoir si cela nécessite des explications supplémentaires.
la source
Unicode est compliqué et grand, dans son intégralité, il est trop grand pour un Arduino. Dans la version actuelle, il y a au total plus de 100 000 caractères, dont cunéiformes, hiéroglyphes, Klingon, sans parler de plusieurs milliers de caractères chinois.
Donc, si vous voulez vraiment montrer des caractères Unicode sur un Arduino:
Obtenez un affichage graphique. Celui que vous mentionnez est un affichage de caractères, il ne peut afficher qu'un ensemble principalement fixe de 256 caractères.
Définissez un petit sous-ensemble de caractères que vous souhaitez gérer. Il existe des sous-ensembles prédéfinis, par exemple les sous-ensembles européens multilingues ont l' air bien.
Obtenez des polices et dépouillez-les jusqu'à l'ensemble dont vous avez besoin. Notez que même l'affichage peut être beaucoup plus compliqué que ce à quoi vous êtes habitué en ASCII, en raison de la combinaison de caractères, de l'écriture bidirectionnelle et autres. Le mieux est probablement de s'en tenir aux caractères latins sans combiner les accents. Le cyrillique et le grec devraient également convenir, de même que tout ce qui est une simple séquence de caractères de gauche à droite.
Vous pourriez peut-être utiliser de la mémoire externe pour stocker les polices.
Ensuite, il y a beaucoup d'autres sujets dont vous n'avez probablement pas besoin, par exemple le tri et la recherche, voir la norme Unicode et ses annexes (c'est grand!).
Oubliez ICU, il a besoin de mégaoctets de mémoire.
la source