Caractères spéciaux [Résolu]

Signaler
Messages postés
4
Date d'inscription
lundi 27 juin 2011
Statut
Membre
Dernière intervention
27 septembre 2011
-
Messages postés
4
Date d'inscription
lundi 27 juin 2011
Statut
Membre
Dernière intervention
27 septembre 2011
-
Bonjour à tous !

Voilà, j'utilise Visual C++ 2008, et je voudrais faire afficher un delta (la lettre grecque) dans un CString.

CString str;
str="\u0394";
AfxMessageBox(str);

Or, cela m'affiche un point d'interrogation et un warning :

Warning 1 warning C4566: character represented by universal-character-name '\u0394' cannot be represented in the current code page (1252)

J'ai fait quelques recherches préliminaires sur des forum (ici et ailleurs), mais je ne parvient pas à trouver la solution.

Merci d'avance !!!

7 réponses

Messages postés
14679
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 juin 2020
91
Petite question: afficher un delta est-il vraiment nécessaire? Tu as beaucoup de caractères comme cela?
Sinon, ça ne vaut pas le coup de "tout casser" ce que tu as déjà fait... Si c'est pour une formule mathématique, "d" fait aussi bien l'affaire...


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
14679
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 juin 2020
91
Hello,
Il faut que tu passes en Unicode


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
4
Date d'inscription
lundi 27 juin 2011
Statut
Membre
Dernière intervention
27 septembre 2011

Merci !

Sauf que je débute et je ne vois pas comment je peux faire !

Tu parles du str ? De mon programme en entier ?
Messages postés
14679
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 juin 2020
91
Dans les options de ton projet, il faut indiquer que tu utiliser le jeu de caractère unicode. De mémoire, ça doit être par là: Project Properties > General > Project Defaults > Character Set.


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
4
Date d'inscription
lundi 27 juin 2011
Statut
Membre
Dernière intervention
27 septembre 2011

Arf ! J'ai fait ce que tu m'as dit de faire sauf que le compilateur me sort plus d'une centaine d'erreurs (137 pour être précis). (Use Unicode Character Set)

Il y a celle ci par exemple :

Error 51 error C2664: 'CWnd::MessageBoxW' : cannot convert parameter 1 from 'const char [31]' to 'LPCTSTR'

C'est parce que je fais une MFC ?

Sinon, j'ai entendu parler de la fonction MultiByteToWideChar() mais je vois pas comment je peux faire dans mon cas (désespéré ?) ...

Qu'en penses tu ?

(et encore merci)
Messages postés
14679
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 juin 2020
91
Oui, il faut changer toutes tes chaines de caractères pour les mettre en tchar plutôt qu'en char.


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
4
Date d'inscription
lundi 27 juin 2011
Statut
Membre
Dernière intervention
27 septembre 2011

Oui, je pense que modifier tout mon programme à la main sera laborieux !

Je vais me débrouiller avec les caractères ascii.

C'est juste dommage...

Et avec la fonction MultiByteToWideChar(), y'a pas moyen ?