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

C++ Discussion :

Unicode Vs Console


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Points : 67
    Points
    67
    Par défaut Unicode Vs Console
    Bonjour

    je veux afficher des caractères Unicode (Arabe, plus précisément) en C++ dans la Console et je sais pas comment on le fait !
    J'ai bien cherché sur le net, j'ai tombé sur beaucoup des essais mais j'ai pas trouvé une solution concrète.


    Merci d'avance.

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Points : 67
    Points
    67
    Par défaut
    J'ai trouvé une solution en utilisant la fonction SetConsoleOutputCP pour changer la page de code de sortie de la console au format UTF-8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include<iostream>
    #include<windows.h>
    using namespace std;
    int main(){
     
         wchar_t s[] = L"èéøÞxa";
         SetConsoleCP(65001);
         SetConsoleOutputCP(65001);
         int bufferSize = WideCharToMultiByte(CP_UTF8, 0, s, -1, NULL, 0, NULL, NULL);
         char* m = new char[bufferSize];
         WideCharToMultiByte(CP_UTF8, 0, s, -1, m, bufferSize, NULL, NULL);
         wprintf(L"%S", m);
         delete[] m;
         return 0;
    }
    Mais malheureusement ça marche pas avec les caractères Arabe et pourtant ce sont des caractères Unicode !


    J'ai besoin de votre aide s'il vous plait.

  3. #3
    screetch
    Invité(e)
    Par défaut
    peut-etre que la police de caractere de la console ne supporte pas ces caracteres?

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Points : 67
    Points
    67
    Par défaut
    Merci beaucoup de m'avoir répondu :-)
    Comment peut-on changer la police afin qu'elle supporte les caractères arabes ?

  5. #5
    screetch
    Invité(e)
    Par défaut
    Vu que tu es sous Windows, je suppose que tu utilises la console de base Windows.
    Donc, 3 pistes:
    * changer la police peut etre fait en cliquant sur l'icone en haut a gauche de la console, il doit y avoir un menu "proprietes". Les deux seules polices disponibles sur ma machine cependant etaient la console de base et Lucida, pas sur qu'ils supportent les encodages plus compliques que l'americain.

    * utiliser une autre console, comme Console2 (http://sourceforge.net/projects/console/) qui supporte lesp olices unicode je crois

    * utiliser une autre autre console, http://code.google.com/p/conemu-maximus5/ c'est fait par un Russe et il y a de bonnes chances que ca supporte des encodages carrement exotiques, mais la configuration estun peu plus, euh, baleze, je crois.


    Si aucune de ces solutions ne fonctionne je ne sais plus

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Points : 67
    Points
    67
    Par défaut
    Malheureusement, Les deux premières méthodes n'ont pas marché avec moi et j'ai pas testé la troisième à cause de sa difficulté
    en tout cas je vous remercie infiniment ..

    S'il existe des autres idées, j'ai tellement besoin d'aide.

  7. #7
    screetch
    Invité(e)
    Par défaut
    j'ai aussi trouve ca:
    http://blog.kalmbachnet.de/?postid=98

    ca permet d'ecrire directement des WideChar sur la console. Mais j'ai peu d'espoir

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Points : 67
    Points
    67
    Par défaut
    J'ai déjà vu la page, le code est spécifié à MSVC++ et moi je travaille sous Code::Blocks :'(

  9. #9
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Salut,

    C'est quoi la langue de base de ton système d'exploitation ?

Discussions similaires

  1. Caracteres unicode sur console
    Par inddzen dans le forum C++
    Réponses: 6
    Dernier message: 14/01/2008, 16h33
  2. Réponses: 2
    Dernier message: 07/05/2007, 19h25
  3. Affichage caractères unicodes dans la console
    Par boss_gama dans le forum C++
    Réponses: 18
    Dernier message: 05/03/2007, 18h27
  4. [Eclipse 3.1.1] Afficher de l'unicode dans la Console
    Par Didier69 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 31/12/2005, 03h03
  5. UNICODE en mode Console ?
    Par Angelico dans le forum Windows
    Réponses: 4
    Dernier message: 26/11/2004, 17h40

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