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++/CLI Discussion :

Convertir WCHAR en std::string


Sujet :

C++/CLI

  1. #1
    Membre tr�s actif
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    427
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 427
    Par d�faut Convertir WCHAR en std::string
    Bonjour,

    Je voudrais convertir
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    WCHAR name[25] = {0}; // +1 for null
    en std::string ?

    Merci

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

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

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Qu'entendez-vous par "convertir" ?
    Un tableau "C" de WCHAR (lui aussi "C" et pas "C++") n'est pas compatible avec un std::string (type "C++"), aussi bien au niveau des "valeurs" possibles qu'au niveau m�moire (et la repr�sentation m�moire d'une std::string n'est m�me pas standardis�e).

    C'est quoi le "vrai" probl�me initial, SVP ?

  3. #3
    Membre tr�s actif
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    427
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 427
    Par d�faut
    J'ai obtenu la r�ponse sur un autre forum, il faut utiliser WideCharToMultiByte()
    merci

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

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

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Attention, c'est une boite � emmerdes :
    https://learn.microsoft.com/fr-fr/wi...hartomultibyte
    Le format MBCS n'est pas plus compatible qu'UTF-16 avec std::string.
    Une std::wstring, c'est bien plus raisonnable.

    En esp�rant que ceux qui vous ont pr�conis� "WideCharToMultiByte" avait le :

    C'est quoi le "vrai" probl�me initial, SVP ?

  5. #5
    Membre tr�s actif
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    427
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 427
    Par d�faut
    en fait je transforme le WCHAR en std::wstring sur lequel j'utilise WideCharToMultiByte (utf-8) pour obtenir un std::string que je compare � un autre std::string (utf-8), sous Windows j'ai test� "�, �" �a n'a pas l'air de poser de probl�me.

  6. #6
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

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

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Il y a des centaines de code-page/"locale" possibles sous Windows qui chacune ne dispose pas de tous les caract�res UTF-16, et encore moins UTF-32.
    Chaque ex�cutable peut changer ces r�glages qui seront h�rit�s par ses processus enfants, et c'est sans compter les configurations de consoles, les choix de police/font, etc...
    Ce n'est pas en v�rifiant avec 2-3 tests que vous pouvez v�rifier qu'il n'y pas de trous dans la raquette.

    Franchement, encore coder en ASCII et pas en UNICODE en 2024, c'est un non-sens.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Convertir QString en std::string
    Par SOU HAIL dans le forum Qt
    R�ponses: 2
    Dernier message: 24/11/2018, 19h29
  2. [FAQ]Comment convertir une std::string en AnsiString ?
    Par Invit� dans le forum C++Builder
    R�ponses: 2
    Dernier message: 26/11/2006, 18h08
  3. convertir std::string en float
    Par radicalrider dans le forum SL & STL
    R�ponses: 20
    Dernier message: 03/07/2006, 18h50
  4. Convertir un std::string en double.
    Par vdumont dans le forum SL & STL
    R�ponses: 16
    Dernier message: 10/05/2006, 16h46
  5. convertir un char * en std::string
    Par benahpets dans le forum SL & STL
    R�ponses: 12
    Dernier message: 01/05/2006, 17h15

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