Unicode
-
Hallo ,
habe aus der Unicode-Tabelle
http://www.html-php-mysql.de/generatoren/unicode.phpdas Zeichen B = B ausgewählet.
und gebe in meinen Code ein ;
std::wstring sOrt; sOrt.append ( L"DDDDD" ); sOrt.push_back( L'\66' );Dann bekomme ich 'DDDDD6'??? wenn ich mit dem Debbuger reinschaue.
Ich kann kein nocrmales Zeichen anzeigen.
Muss ich vielleicht die Unicode-Nummer anders angeben :
sOrt.push_back( L'\66' );
-
Das war das Zeichen 'B'
-
Du mußt auch genau aufpassen, welche Escape-Sequenz du verwendest. '\66' = (char)066 = '6' (oktale Zeichencodes). 'B' erreichst du mit '\x42' (hexadezimal) bzw. '\102' (oktal).
(dezimale Escape-Sequenzen gibt es überhaupt nicht)
-
Hallo CStoll,
kannst du mir eine Unicode-Tabelle empfehlen , wo auch die
hexadezimale Darstellung vorhanden ist ?Ich finde nur Tabellen mit der Unicode-Nr und bin davon ausgegangen , dass das die dezimale Darstellung ist.
Danke.
Mfg , Braun
-
Windows Zeichentabelle - die verwende ich immer, wenn ich einen Zeichencode benötige.
(oder du nimmst einen Taschenrechner, um deine Werte umzurechnen)
-
Hallo CStoll ,
warum bekomme ich so komisches Ergebnis?
std::wstring sOrt; sOrt.append ( L"DDDDD" ); sOrt.push_back( L'\x42' );Das Ergebnis: "DDDDDB"????
Es iseht so aus , das der Compiler nicht weiß , wohin mit dem zweien Byte ?Mfg Elke
-
Was denn für ein zweites Byte? '\x42' ist ein 1-Byte-Wert und ergibt ein 'B'.
-
Hallo CStoll,
du hast recht. Ich habe gedacht wchar_ benutzt ja 2 Byte um ein Zeichen darzustellen.
Und das Zeichen belegt nur ein Byte .
Es lag an was anderem. Ich habe den wstring nicht mit \0 abgeschlossen gehabt.
Ich danke dir !
Viele Grüße,
Elke