«Si ton caractère "é" vaut 169, c'est que tu es en ISO-8859-1, et pas en UTF-8.»
Non, en ISO le caractère 169 correspond au copyright. 169, ça correspond à l'octet de poids faible du code utf-8 de 'é'. Le problème n'est donc pas de ne pas être en utf-8, mais que getch () ne stocke la valeur du caractère utf-8 que sur un octet.
mistiru:
Tu dis que si t'utilises get_wch, ça change juste les valeurs que t'affiches avec %d, mais du coup est-ce que ça marcherait pas si t'utilsiais "%lc" au lieu de "%c" pour afficher le caractère ?
J'ai essayé chez moi, et du coup avec
get_wch(&ch);printw("char=%lc",ch);
(plus le setlocale au début) ça affiche bien les lettres accentuées.
[^] # Re: get_wch ?
Posté par Lizzie Crowdagger . En réponse au message [Résolu] Caractères composés. Évalué à 2.
«Si ton caractère "é" vaut 169, c'est que tu es en ISO-8859-1, et pas en UTF-8.»
Non, en ISO le caractère 169 correspond au copyright. 169, ça correspond à l'octet de poids faible du code utf-8 de 'é'. Le problème n'est donc pas de ne pas être en utf-8, mais que getch () ne stocke la valeur du caractère utf-8 que sur un octet.
mistiru:
Tu dis que si t'utilises get_wch, ça change juste les valeurs que t'affiches avec %d, mais du coup est-ce que ça marcherait pas si t'utilsiais "%lc" au lieu de "%c" pour afficher le caractère ?
J'ai essayé chez moi, et du coup avec
(plus le setlocale au début) ça affiche bien les lettres accentuées.