Unicode-Sonderzeichen in den wstring
-
Hallo ,
jetzt möchte ich meine Umstellung im Framework testen.
Das Problem ist , ich möchte in den wstring ein Zeichen reinstellen ,
dass IsoCode nicht darstellen kann und nur Unicode kann.
z.B. ein japanisches Zeichen. Wie mache ich das ?Ich muss doch dann irgendwie die Nummer aus der Tabelle für das Zeichen einstellen .
Aber wie ?
Mfg , Elke
-
Wie du an die Nummer herankommst, mußt du selber wissen - kodieren kannst du das Zeichen dann als \x[Hex-Code] (z.B. *in Windows Zeichentabelle nachsieht* L'\x39E' - Ξ)
-
Hallo CStoll,
danke !
Bin gespannt ob alles tut , wie ich es möchte .
Mfg ,
Elke
-
Hallo ,
habe jetzt den wstring so aufgebaut:
std::wstring sOrt.append ( L"DDDDD" );
sOrt.push_back( L'\x018E' ); // Großes, umgekehrtes E' );Wenn ich mit dem Debbuger reinschaue, dann steht an der
Stelle von dem Zeichen '\x39E' ein Fragezeichen .:-(Irgendwie kann das Zeichen nicht dargestellt werden.
Windows200 ist doch Unicodefähig. d.h. er hat auch die Font's unm die Zeichen darzustellen . Oder ?An was könnte es liegen ?
Mfg .
Elke
-
Welche VC-Version benutzt du denn? Bis in VC2003 gabs (glaub ich) in der IDE kein Unicode. Gib mal den Textinhalt in einem CEditCtrl aus oder mit der GDI+ Textausgabe, die sind Unicodefähig.
Ob die VC2005-IDE auch schon Unicodefähig ist, weiß ich nicht.
-
Hallo Artchi ,
ich benutze VisualStudio .Net 2003.
Was ist das für Editor CEditCtrl und wie kann ich die Ausgabe da am einfachsten machen ?
Mfg ,
Elke
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Artchi schrieb:
Welche VC-Version benutzt du denn? Bis in VC2003 gabs (glaub ich) in der IDE kein Unicode. Gib mal den Textinhalt in einem CEditCtrl aus oder mit der GDI+ Textausgabe, die sind Unicodefähig.
Ob die VC2005-IDE auch schon Unicodefähig ist, weiß ich nicht.
Die VC2003 ist sehr wohl Unicode fähig... zumindest zeigt er bei mir chinesische Zeichen im Debugger an. Du musst natürlich die entsprechenden Fonts installiert haben (wird bei einem deutschen OS nicht per default gemacht!)!
Es gibt nur ein Problem bei VC2003, und das ist der "custom-visualizer" für wstring... der kann es nicht anzeigen... der Fehler ist aber in VC2005 behoben.
Beim unteren Beispiel wird "str" nicht korrekt angezeigt, aber dafür szStr (bzw. str._Bx._Buf wird auch korrekt angezeigt):
#include <windows.h> #include <tchar.h> #include <string> int _tmain() { std::wstring str; str.append(_T("\x30C4")); const wchar_t *szStr = str.c_str(); return 0; }
Ob man den korrekten "Visualizer" in VC2003 einsetzen kann, weiss ich jetzt nicht:
VC2005 autoexp.dat schrieb:
std::basic_string<unsigned short,>|std::basic_string<wchar_t,>{
preview
(
#if((e._BUF_SIZE)) ( [e.\_Bx._Buf,su] ) #else ( [e._Bx._Ptr,su] )
)stringview
(
#if((e._BUF_SIZE)) ( [e.\_Bx._Buf,sub] ) #else ( [e._Bx._Ptr,sub] )
)children
(
#if((e._BUF_SIZE))
(
#([actual members]: [$e,!] , #array( expr: e.\_Bx.\_Buf[i], size: e._Mysize)) ) #else ( #([actual members]: [e,!], #array( expr: e.\_Bx.\_Ptr[i], size: $e._Mysize))
)
)
}PS: Gültige Zeichen kannst Du z.B: hier finden:
http://www.fileformat.info/info/unicode/char/30C4/index.htm
-
Elke100 schrieb:
sOrt.push_back( L'\x018E' ); // Großes, umgekehrtes E' );
Das Zeichen kann Windows nicht mit den mitgelieferten Schriftwarten darstellen. Siehe:
http://www.fileformat.info/info/unicode/char/018E/browsertest.htmWobei 0x039E bei mir geht:
http://www.fileformat.info/info/unicode/char/039E/index.htm