Forum Programmation.c Question d'accent

Posté par  .
Étiquettes : aucune
0
8
sept.
2005
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  . Évalué à 1.

    Je parirais pour uclibc qui ne doit "raisonner" que ASCII.
    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  . Évalué à 2.

    Tu tapes UTF-8 et ISO-8859-15 dans Google et tu regardes ce qu'il te répond ! :-)

    Essaie aussi " echo $LANG " si cette variable est correctement définie ...
  • # \_o<

    Posté par  (site web personnel) . Évalué à 1.

    printf () de la norme ANSI-C 89 a ete concu pour afficher des characteres encodes sur 7 bits.

    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.