Salut,
J'ai depuis toujours beaucoup de mal à comprendre le fonctionnement des caractères accentués sous Linux.
Est-ce que quelqu'un peut m'expliquer comment on peut afficher des chaînes de caractères accentués en C?
Actuellement si je fais un printf("éàùè\n") sur mon portable j'ai un affichage correcte. En revanche, sur une autre machine l'affichage des accents est erroné.
J'ajoute que la machine qui n'affiche pas correctement les accents est une machine sous uclibc+busybox. De plus, l'utilisation des accents du clavier et dans les fichiers textes fonctionne parfaitement. Il semble que seuls les accents dans mes programmes ne fonctionnent pas.
Merci
# Pifométriquement parlant ...
Posté par Sisyphe Plâtrier . Évalué à 1.
Disposes-tu de polices de caractères adaptées, as-tu renseigné LANG=<*qque chose*> ? D'ailleurs est-il prévu que tes applis comprennent cette variable sur la seconde machine ?
My2c
# Charsets roulaizent
Posté par Obsidian . Évalué à 2.
Essaie aussi " echo $LANG " si cette variable est correctement définie ...
# \_o<
Posté par doublehp (site web personnel) . Évalué à 1.
Les caracteres accentues n etant pas dans la norme ASCII stricte, ton code aura forcement une sortie variant de l environnement ou il est execute: aleatoire et non previsible.
Sous linux, printf() est desormais POSIX, et supporte le 8 bits, mais l interpretation du bit de poid fort depends fortement de la configuration de l environnement de l utilisateur (sur la meme machine, deux users avec une conf differentes peuvent avoir un affichage different du meme programme)
Si tu veux un truc portable, il te faudra utiliser:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vc(...)
tres partiellement supporte par GCC, mais dont l execution correcte requiert un terminal compatible UTF-8
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.