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 :

wstring et unicode


Sujet :

C++

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 356
    Par défaut wstring et unicode
    Bonjours à tous, j'ai essayé de gérer des caractères unicode en regardant la FAQ et, après un copier collé de leur exemple, j'obtiens les erreurs :
    -converting to execution character set : illegal byte sequence.
    -error : wcout is not memeber of 'std'

    Le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <string>
    #include <iostream>
     
    int main()
    {
        std::wstring s = L"Chaîne unicode";
        wchar_t c = s[ 0 ]; // c = L'C'
        std::wcout << s;
    }
    Comment corrigé ces erreurs ?
    J'utilise mingw et je compile avec l'option -g.

    Si quelqu'un a une solution ...

  2. #2
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    Il me semble qu'il y a une instruction spécifique à donner à gcc pour qu'il prenne en compte l'unicode.

    Tu as quelle version de gcc?

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 356
    Par défaut
    Il me semble que j'ai 3.4.5, je vais regarder les différentes options que je peux donner a gcc. Merci.
    Je n'ai pas trouvé d'options qui correspondent.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    MinGW-gcc 3.4 n'implémente quasiment rien de la bibliothèque standard en version wchar_t.

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 356
    Par défaut
    Merci, me reste plus qu'à gérer tout sa en vector de Uint16....
    Ou changer de version pour mingw. Merci à tous

  6. #6
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut
    Citation Envoyé par NoIdea Voir le message
    Merci, me reste plus qu'à gérer tout sa en vector de Uint16....
    Ou changer de version pour mingw. Merci à tous
    Le plus facile et le plus intéressant sera surement de changer de version de mingw, si tu peux le faire, car gcc 3.4.5 est vraiment... très vieux...

    Actuellement, mingw propose au minimum gcc.. 4.4.0, et il est même possible de se compiler une version de gcc4.5.0 voir... de gcc 4.6.0, imagine un peu !!!

    Ce que tu dois prendre (sur le site de mingw):
    • binutils 2.20.50-1 (MingW->BaseSystem->GNU-binutils)
    • Gcc-core-4.5.0 et Gcc-g++-4.5.0 ou ultérieures (MingW->BaseSystem->Gcc->version 4)
    • GDB-7.1.0 (MingW->BaseSystem->GDB)
    • mingwrt-3.18 (MingW->BaseSystem->RuntimeLibrary->MinGW-RT)
    • win32-api-3.14(MingW->BaseSystem->RuntimeLibrary->Win32-API)
    veille à prendre les archives contenant le mot "bin" pour les trois premier, le mot "dev" pour les deux derniers.

    Décompresse le tout dans un dossier de ton choix (il est préférable d'éviter les noms de dossiers avec des espaces)
    ajoute <racine>\bin à la variable PATH (accessible depuis le panneau de configuration -> système( -> modifier les paramètres sous vista et ultérieurs) -> paramètres système avancés -> variables d'environnement. ) (ou <racine> représente le dossier dans lequel tu as décompressé les archives)
    Le tour est joué

    Alternativement (si tu n'a pas les droits nécessaires pour aller chipoter à la variable PATH), tu peux créer un fichier batch (setenv.bat ) proche de:
    Code BATCH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    echo off
    @rem gets the current directory
    set THISDIR=%CD%
    @rem add current dir\bin to PATH variable
    set PATH=%PATH%;%THISDIR%\bin
    @rem launch a new command line and keep it opened
    cmd /k
    echo "environnement now set to use MinGW"
    echo ""
    echo on
    qui te lance une ligne de commande dans laquelle la variable PATH est temporairement modifiée pour permettre d'accéder aux exécutables de MinGW.

    Tu place ce fichier batch dans <racine> (même convention que plus haut ) et il n'y a plus qu'à ... double cliquer dessus
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 356
    Par défaut
    Merci beaucoup, je ne savais pas que mingw proposait un gcc aussi récent (fait dire que je n'avais jamais eut a me plaindre de 3.4.5..).

  8. #8
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    tu vas voir ça va changer ta vie.... ou pas^^

  9. #9
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par haraelendil Voir le message
    tu vas voir ça va changer ta vie.... ou pas^^
    Ben...

    La release 3.4.5 a quand même près de cinq ans, et il faut avouer que les version 4.x.x ont apporté un lot considérable d'améliorations

    Si, de plus, tu t'intéresse peu ou prou à la nouvelle norme, quitte à ce que ce soit à titre expérimental, il est sans doute carrément intéressant de passer à une version 4.4.x ou supérieure

    Enfin, si tu travailles sur un système 64bit, ou que tu souhaites pouvoir générer des binaires spécialement pour des systèmes 64bits, c'est possible grâce au projet mingw-w64, mais il utilise également au minimum une version... 4.4.x (je crois que rien n'est prévu à ce sujet au niveau de la version 3.4.5)

    Bref, il y a énormément d'avantages à passer à la version suivante, mais, il vaut la peine de les évaluer correctement par rapport à tes propres besoins
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/07/2011, 13h43
  2. Utilisation d'Unicode, wstring
    Par Biosox dans le forum SL & STL
    Réponses: 4
    Dernier message: 31/10/2008, 08h33
  3. [Unicode] Internationalisation d'une application
    Par Thierry Laborde dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2003, 20h15
  4. conversion Unicode -> ASCII
    Par juzam dans le forum C
    Réponses: 8
    Dernier message: 24/07/2003, 10h07
  5. [debutant] unicode
    Par dadou91 dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 23/05/2003, 10h12

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