Problème d'affichage de caractère

[Résolu]
Signaler
-
Messages postés
582
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
20 juillet 2021
-
Bonjour,
J'ai comme problème que lorsque je souhaite afficher un "â" dans la console, ça m'affiche un "Ô" une fois le programme lancé. Quelqu'un saurait pourquoi ?
PS : ça me fait la même en utilisant "\x83"

3 réponses

Messages postés
579
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
16 juillet 2021
7
Bonjour,

C'est en effet un problème de page de code. Un
char
est trop petit pour stocker tous les caractères de la planète. Seuls quelques caractères sont garantis universels (en gros les 26 lettres de l'alphabet et des symboles). Comme il n'y a que 256 possibilités, pour les autres ça dépend du contexte ou du pays; c'est ce que l'on appelle les pages de code.
- Ton code source est écrit dans un fichier texte, il utilise une page de code sous-entendue. Par exemple sous Windows c'est souvent la Windows-1252.
- Lors de la compilation, les chaines de caractères sont converties dans la page de code du programme. Par exemple avec visual studio, c'est par défaut la Windows-1252.
- La console utilise une page de code pour "traduire" les octets reçus/émis en caractères affichés. Par exemple encore sous Windows et en Europe c'est la page de code IBM-850.
Si les 2 dernières pages de codes ne sont pas identiques, des tas de caractères seront incorrectement affichés.
On peut prévenir la console d'utiliser la même page de code que le programme, si on est dans le cas des 3 exemples il faudrait ajouter au début du
main()
de ton programme:
    system("chcp 1252");
Messages postés
14815
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 août 2021
156
Le problème se situe sûrement que ton éditeur de code et ta console n'utilisent pas le même charset/page de code.
Messages postés
582
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
20 juillet 2021
2
Le notepad est de bon secours pour surnager entre les formats et les codepages.
Il possède un menu "enregistrer sous" permettant de choisir parmi les encodages
UTF-8(meme pas unicode ) UTF-16 LE .....
Quand aux codepage,un affichage de caractères ascii est la des plus utile.
Ce serait étonnant de ne pas trouver ca dans les sources.
On n'a pas besoin de l'unicode (16 bits) pour afficher correctement â