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 actif

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 356
    Points : 206
    Points
    206
    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 confirmé
    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
    Points : 533
    Points
    533
    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 actif

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 356
    Points : 206
    Points
    206
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

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

  5. #5
    Membre actif

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 356
    Points : 206
    Points
    206
    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 sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 714
    Points
    30 714
    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

  7. #7
    Membre actif

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 356
    Points : 206
    Points
    206
    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 confirmé
    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
    Points : 533
    Points
    533
    Par défaut
    tu vas voir ça va changer ta vie.... ou pas^^

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 714
    Points
    30 714
    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

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

Discussions similaires

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

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