C: console, affichage des caractères ISO

P_Phant -  
 P_Phant -
J'ai un problème stupide.
L'affichage sur console par printf ne correspond pas à la norme ISO-latin-1, du moins chez moi.
par exemple:
printf("é");
Affiche ù
Pas très pratique.
Ppour afficher é il faut que je passe le caractère '\202' alors que le code octal en ISO-latin-1 de é est 351...
J'obtiens le même résultat en compilant avec LCC ou gcc (mingw)
Voilà j'aimerais savoir comment remédier à celà. J'ai essayé des setlocale sans succès.
Au pire je veux bien modifier les chaînes de caractères avant affichage, mais il faudrait pour cela que je connaisse la table de correspondance, et que je sois certains que ce comportement soit le même sur toutes les machines (histoire que ma "traduction" en réglant le problème chez mo, ne le crée pas ailleurs).
Merci

2 réponses

Utilisateur anonyme
 
y a longtemps j'ai commencé un peu à me former au C et j'ai rencontré le même problème. J'ai posé la question sur fr.comp.lang.c si je me souviens bien et je me suis fait rentrer dans le lard parce que c'était dans la FAQ ou un truc du genre. Donc essaye de dégoter la FAQ de fr.comp.lang.c et ça devrait y être.

sinon, plus simple, tes fichiers .c (euh je sais plus l'extension mais bon tu vois quoi, la source) ouvre-les dans un éditeur de texte qui sache convertir un fichier en OEM-DOS

kinder.surprise,
le maton du matou
0
P_Phant
 
Merci, le coup de l'éditeur texte ça ne marchera pas je pense car le programme fonctionne à l'origine avec une GUI, et accessoirement en mode console maintenant. Comme les messages d'erreurs sont les mêmes, j'aurais un problème. Par contre, j'ai trouvé la fonction CharToOem dans L'api win32 grace à ton coup de pouce, donc en wrappant la fonction printf, je m'en sort à bon compte.
0
batmat Messages postés 1871 Statut Membre 114
 
Quand tu as trouvé, la réponse m'intéresse (par curiosité)...

Merci d'avance P_Phant

@++

Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
0