[Résolu]affichage des accents avec printf

Bonsoir,

j’ai un problème d’affichage des accentd dans un terminal avec printf : lorsque je les tape directement dans un terminal pas de problème mais dans
un programme C avec printf mes accents sont remplacés par des points d’interrogation.
merci

Vérifie que l’encodage du fichier est le même que celui du terminal. S’il s’agit d’un TTY, vérifie aussi que ses polices/locales soient bien configurées.

Maintenant, il est conseillé d’utiliser UTF-8 partout.

Je ne sais pas de quel fichier tu parles …
Dans mon fichier source pas de problème , je peux l’éditer et tout y est affiché correctement; mais c’est mon binaire qui pose problème
puisque c’est à l’exécution du programme qui l’affichage des accent ne s’effectue pas dans le terminal.

Pour ce qui est de mes locales :

LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=

rien avoir avec l’encodage de ton pc (meme probleme sur windows par ex)
c’est à cause de printf si tu fait du c++ utilise cout (je crois que tu aura pas le probleme) sinon ya une solution en utilisant le code ascii mais c’est tout
ps tu as pas poster ou il faut

[quote=“zerimbak”]Je ne sais pas de quel fichier tu parles …
Dans mon fichier source pas de problème , je peux l’éditer et tout y est affiché correctement; mais c’est mon binaire qui pose problème
puisque c’est à l’exécution du programme qui l’affichage des accent ne s’effectue pas dans le terminal.[/quote]
En quel codage est enregistré le fichier (code source C) ?

En quel codage est configuré le terminal ? (si c’est gnome-terminal, tu peux le configurer avec le menu Terminal->Définir le codage des caractères et choisis le même que celui du fichier source)

[quote=“bobzer”]rien avoir avec l’encodage de ton pc (meme probleme sur windows par ex)
c’est à cause de printf si tu fait du c++ utilise cout (je crois que tu aura pas le probleme) sinon ya une solution en utilisant le code ascii mais c’est tout[/quote]
Entre printf et cout, il n’y aura pas de différence. Les deux fonctions affichent bêtement sur la sortie standard le contenu de la chaîne passée.

Concernant le code du caractère, ça dépend du codage utilisé. Pour rappel, la norme ASCII ne concerne pas les caractères accentués…

Bref, si tu écris le code source en UTF-8, il affichera de l’UTF-8 dans ton terminal. Si ton terminal n’est pas configuré en UTF-8, alors il n’affichera pas le résultat voulu.

À lire :

je persiste printf et cout sont different
printf est formater tu doit dire % quelque chose pour lui definir le format 'affichage de tes donner
alors que cout le fait tous seul il ce demerde

Explique alors le rapport entre formatage de chaîne et codage des caractères…

ben compile ça

#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{

  cout << "cout vous dit bonjour avec é è ç à !" << endl;
	printf("il essai aussi mais y arrive pas é è ç à !\n");
	char stop[10];;
	cin >> stop;

  return EXIT_SUCCESS;
}

le cin et juste la pour ne pas qu’il ferme directe
et chez moi j’ai des accents

En effet mon fichier source est en ascii, mais alors comment le convertir en UTF8 ?
merci

ça y est Desintegr j’ai trouvé la solution,
je suis allé sur ton site j’ai récupéré ta config pour vim, j’ai placé le fichier vimrc dans mon .vimrc
et tout baigne maintenant printf affiche bien les accents comme je le voulais.

merci