J'essaie d'afficher les caractères Unicode de (Box Drawing Range : 2500-257F). C'est censé être la norme utf8 (The Unicode Standard, Version 6.2). Je suis tout simplement incapable de le faire.
J'ai d'abord essayé d'utiliser les bons vieux caractères ASCII mais le terminal Linux affiche en utf8 et il n'y a pas de conversion (symbole ?) affichée en place.
Quelqu'un peut-il répondre à ces questions ?
- Comment encoder un caractère unicode dans une variable C (
style wchar_t
) ? - Comment utiliser la séquence d'échappement telle que 0x ou 0o (hex, oct) pour Unicode ?
Je connais U+ mais il semble que ça n'ait pas marché.
setlocale(LC_ALL,"");
short a = 0x2500, b = 0x2501;
wchar_t ac = a;
wchar_t bc = b;
wprintf(L"%c%c\n", ac, bc);
exit(0);
Je sais que les résultats sont liés à la police utilisée, mais j'utilise une police utf8 ( http://www.unicode.org/charts/fonts.html ) et les codes de 2500 à 257F doivent être affichés... En fait, ils ne le sont pas.
Merci d'avance pour votre aide...
[EDIT LATELY] Le problème est résolu depuis... et j'ai trouvé comment utiliser wprintf() avec %lc au lieu de %c... et plus profondément. Maintenant ces tiroirs d'arc font partie de ma bibliothèque d'"outils" d'étudiant pour rendre l'apprentissage de la programmation en console un peu plus coloré.