IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage C++ Discussion :

les lettres accentuées sont remplacées


Sujet :

Langage C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Points : 41
    Points
    41
    Par défaut les lettres accentuées sont remplacées
    Bonjour,
    Lors de l’exécution de mon programme je voudrais afficher un titre, mais les lettres accentuées sont remplacées par des hiéroglyphes. Comment faire pour résoudre ce problème ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 161
    Points : 12 276
    Points
    12 276
    Par défaut
    Quel type de programme, quelle plateforme SVP ?

  3. #3
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Quel type de programme, quelle plateforme SVP ?
    si c'est un affichage console, je n'espère pas afficher des caractère accentués. Sinon, il faut stocker tes caractères dans des wstring (wide strings) au lieu de strings. Il y a peut être aussi un truc à faire avec les locales, mais je dois avouer ne m'être jamais pencher sur ce genre de problème.

  4. #4
    Membre actif
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    189
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 189
    Points : 214
    Points
    214
    Par défaut
    Et sauf erreur de ma part, sous windows avec l'invite de commande de base tu ne peux pas (point).

  5. #5
    Invité
    Invité(e)
    Par défaut
    T'es sous Windows ou Linux ?
    D'une manière générale, dès que tu bosses sur du texte, utilise des unsigned char*, et pas des char *.

    Après comme on sait pas dans quoi tu veux afficher ton texte, en fonction il faut peut-être lui préciser quel est le code page à utiliser.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 174
    Points
    1 174
    Par défaut
    sous linux normalement ça marche tout seul avec des simple std::string qui sont vus comme de l'UTF-8

  7. #7
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par nikko34 Voir le message
    sous linux normalement ça marche tout seul avec des simple std::string qui sont vus comme de l'UTF-8
    Ils sont vus comme la locale courante au moment de la compilation, tandis que les i/o textes seront vus comme la locale courante au moment de l'exécution. Ca peut poser des problèmes et imposer l'usage d'un setlocale() en début de programme, si tu déploies ton programme sur d'autres machines sous forme compilée.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 69
    Points : 142
    Points
    142
    Par défaut
    Je suis sous Windows 7, Visual Studio Express 2010 et Code::block (avec TDM-GCC) sont tous deux installés.

    J'utilise Code::block car VS est trop lourd sur ma machine qui date de 6 ans.

    Lorsque j'utilise la sortie console, l'utilisation d'un simple setLocale("") sous VS 2010 marche sans aucun problème, les caractères accentués sont correctement affichés. Par contre, sous Code::block, rien à faire, j'ai toujours des "hieroglyphes" en sortie console. J'ai même essayé de changer le type de police de la console mais rien n'y fait.

    Dois-je alors en conclure que MingW-Gcc (ou Tdm-Gcc) en est la cause ? Ou y a-t-il une "incantation" que j'ai oublié d'invoquer ?

  9. #9
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Il y a plusieurs choses importantes à vérifier :
    - le charset de ton fichier
    - le charset que considère ton compilateur pour interpréter le fichier
    - la locale (incluant le charset, donc) de ta console

    Les 3 doivent être identiques pour que ça marche correctement.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Moi, à votre place, je ferais une simple correspondance pour las caractères spéciaux (majuscules accentuées) entre pages de code.
    Dans mon vocabulaire courant, les termes "normalement" "automatiquement" n'existent pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer les lettres accentuées d'un fichier par leur équivalent html
    Par Michel Deriaz dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 07/03/2011, 21h12
  2. les lettres accentuées empêchent le texte de s'afficher
    Par phil74 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 05/12/2008, 11h03
  3. les caractères accentués sont remplacés par des caractères chinois
    Par ghyosmik dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 04/12/2008, 22h33
  4. Réponses: 4
    Dernier message: 04/05/2007, 22h49
  5. Réponses: 6
    Dernier message: 12/12/2006, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo