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

MFC Discussion :

CString et accent.


Sujet :

MFC

  1. #1
    Membre averti
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2022
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 21
    Par d�faut CString et accent.
    Bonjour,
    qqun pourrait me dire pourquoi je n'arrive pas � g�rer les accents ?

    MessageBox("t�te");

    ou CString tmp = "t�te";
    MessageBox(tmp);

    compilation unicode ou pas c'est pareil.

    ca me renvois pas les accents !

    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
    Les valeurs en dur dans le code, c'est caca !
    Mettre des valeurs en dur quand on ne ma�trise pas clairement l'encodage (BOM, UTF-8, etc...) des fichiers source (et la non-utilisation de la MACRO L ou TEXT), c'est s'exposer � bien des emmerdes.
    Vos questions et remarques montrent que vous n'avez pas une grande exp�rience dans le domaine, on devra le faire par �tape.

    On commence par la commencement : Pourquoi utiliser cette antiquit� de CString qui n'est m�me pas compatible avec le moindre accent m�me ASCII �tendu et pas la classe standard "std::string" (c'est pas pour �a qu'il faut s'en servir) ?

  3. #3
    Membre averti
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2022
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 21
    Par d�faut
    C��tait un exemple.
    en fait je r�cupere des valeurs lu dans un xml via tinyxml2. je n'ai aucunes chaines litt�rales en dur dans le code.
    pour toutes les autres chaines je les stocks dans les ressource et je les appelle via loadstring pour afficher certains messages dans des messagebox.

    je veux bien definir des std::string et l'afficher dans un MessageBox mais �a change rien.

  4. #4
    Membre averti
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2022
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 21
    Par d�faut
    il aurait plus simple de me dire de compiler en UNICODE et de passer utf-8 en ligne de commande.
    c��tait pas une �vidence pour moi, j'avais arr�t� de programmer il y a 20 ans.

  5. #5
    Expert confirm�
    Avatar de Mat.M
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 536
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 536
    Par d�faut
    Citation Envoy� par gerome88 Voir le message
    je veux bien definir des std::string et l'afficher dans un MessageBox mais �a change rien.
    non il ne faut pas utiliser des std::string mais plut�t des std::wstring.
    Par contre c'est bizarre que la classe MFC CString g�re mal �a..
    le probl�me ne viendrait pas de TinyXML ?

  6. #6
    Membre averti
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2022
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 21
    Par d�faut
    Citation Envoy� par Mat.M Voir le message
    non il ne faut pas utiliser des std::string mais plut�t des std::wstring.
    Par contre c'est bizarre que la classe MFC CString g�re mal �a..
    le probl�me ne viendrait pas de TinyXML ?
    Bonjour, le probl�me venait de moi.
    j'avais bien un xml avec en ent�te utf-8
    mais comme je n'y connaissais rien en xml , pour le cr�er je m'etais servi de bloc note.
    je ne savais pas qu'il fallait l'encoder aussi en utf-8. chose faite avec notepad ++.
    je recupere bien mes accents du coup.
    question : pk sp�cifier un ent�te si c'est l'encodage qui compte ?

  7. #7
    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
    CString est un alias vers CStringT.

    Si vous ne compilez qu'en UNICODE, autant utiliser CStringW, au moins c'est explicite.

    Et quit � utiliser du standard, autant utiliser std::wsting.

    La gestion des accents et des mauvais encodages seront plus visible avec ces types explicitement "Wide".

    question : pk sp�cifier un ent�te si c'est l'encodage qui compte ?
    Qu�entendez-vous par "encodage" ?

    Sans en-t�te, aucun moyen "fiable" d'avoir l'encodage d'un fichier.
    Ce n'est que des heuristiques qui permettent de "deviner/�valuer" l'encodage d'un fichier. Donc chaque �diteur de texte peut �valuer l'encodage d'un fichier de mani�re diff�rente.

    L'en-t�te XML est l� pour avoir un r�sultat coh�rent si le fichier est correctement encod� (que l'en-t�te est coh�rent avec l'encodage, que l'encodage est le m�me tout le long du document, etc...).

    Si votre en-t�te ne correspond pas � l'encodage ou que vous utilisez plusieurs encodages, la librairie XML ne peut pas faire de miracle.

    Comme je l'ai d�j� indiqu�, c'est � vous (d�veloppeur ou utilisateur final) de ne donner � votre programme que des fichiers "coh�rents", ou activez le mode "parano�a" des librairies pour qu'elles n'acceptent que des fichiers "en b�ton".

Discussions similaires

  1. char* => CString probleme avec les accents
    Par kacedda dans le forum MFC
    R�ponses: 2
    Dernier message: 26/06/2007, 15h40
  2. identification lettre (pb accent)
    Par scorbo dans le forum C
    R�ponses: 5
    Dernier message: 14/12/2002, 02h59
  3. que deviennent mes accents ?!
    Par petitdns dans le forum XSL/XSLT/XPATH
    R�ponses: 5
    Dernier message: 28/11/2002, 09h32
  4. [Accents - XML] Probl�me de codage non support� !!
    Par Smortex dans le forum Composants VCL
    R�ponses: 6
    Dernier message: 24/11/2002, 11h00
  5. Convertion de type VARIANT � type CString
    Par j_grue dans le forum MFC
    R�ponses: 2
    Dernier message: 07/11/2002, 14h18

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