Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Afxmessagebox mit Utf8-string

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.01.2004, 18:20 Uhr
~Luke1410_
Gast


Eine Funktion liest einen String aus einer XML-Datei, in dem einige Zeichenim UTF-8 Verfahren kodiert sind (ae, oe, ue,...). Dieser String wird via das benutzte Macro TCHAR und #define _UNICODE dann gespeichert und soll ueber die Funktion AfxMessageBox ausgegeben werden.

Bei der Ausgabe tauchendie aes, ues, oes,... jedoch nicht richtig auf, sondern werden als "komische" Zeichendargestellt (z.b. soetwas wie AE).

Da diesmein erster Versuch mit UNICODE ist, werdeich wohl irgendwas simples vergessen haben... Leider bin ich jetzt seit Freitag auf der Suche nach einer Loesung und alle, was ich bislang versucht habe, hat nicht funktioniert.
Alleine fuer eine URL, waere ich schon dankbar, da ich weder in Foren, noch in der MSDN noch mit Google etwas wirklich passendes gefunden habe...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.01.2004, 19:25 Uhr
Spacelord
Hoffnungsloser Fall


Vielleicht ist MultiByteToWideChar das was du suchst?

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.01.2004, 16:35 Uhr
~Luke1410_
Gast


Ich versuch jetzt schon wieder eine Stunde das einzubauen (bekomme die Funktion MultiByteToWideChar auch nicht wirklich zum laufen), komme aber irgendwie nicht weiter...

Das ist der Code (gekürzt):


C++:
#define _UNICODE
CString sBuf;
sBuf = xmlNodeListGetString(pDoc, pCur1->xmlChildrenNode, 1);
AfxMessageBox(sBuf);



xmlNodeListGetString liefert wie schon gesagt einen String im UTF-8-Format.
In sBuf steht dann dort, wo in der XML z.B. ein ä kodiert ist:
sbuf[42] = 195(dez) (wird als Ä-ähnliches Zeichen dargestellt)
sbuf[43] = 164(dez) (wird als x-ähnliches Zeichen dargestellt)

hex-dez wäre dass dann C3A4. Das unicode-Zeichen für ä ist jedoch 00E4... Wenn ich die RFC richtig verstanden habe, wäre die entsorechende Kodierung in UTF-8 dann auch E4.

Lasse ich das #define _UNICODE weg, müsste ja laut MSDN standardmäßig MBCS aktiviert sein. Damit sieht es aber genauso aus (sowohl im Speicher als auch bei der Ausgabe mit AfxMessageBox).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.01.2004, 16:39 Uhr
~Luke1410_
Gast


Kodiert ist das Zeichen in der XML so (und wird mit der Anzeige im IE auch richtig als ä angezeigt): ä
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.01.2004, 20:20 Uhr
~Luke1410_
Gast


MultiByteToWideChar war der richtige Tipp... thx... hab zwar einiges umschreiben müssen, aber jetzt läufts.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: