Char zu CString hinzufügen -- Umlaute
-
Hallo Forum,
Ich möchte gerne einen Cstring aus aus einzelnen char zeichen zusammensetzen(Eine Datei wird Zeichenweise ausgelesen).
Das Funktioniert prinzipiell auch, nur bei umlauten gibt es Probleme.
Aus der Datei wird beispielsweise ein char = 'ü' (Wert laut debug -4) ausgelesen.
Sobald ich aber das ü perCString += char
hinzufüge kommt nur Müll in dem CString an.
Ich vermute Probleme mit dem Zeichensatz, jedoch bin ich schon bei der -4 skeptisch denn im Ansicode müsste ü ja 253 sein oder nicht?
Vielen Dank und viele Grüße
thps
-
Du solltest Dich mal mit Encodings beschäftigen... In welchem Encoding ist die Datei abgespeichert? CString kann auch keine negativen Zahlen...
-
mmh ich hab mal geschaut, wenn ich einem Char einfach per code ein "ü" zuweise kommt das selbe herraus. Solange ich im char bleibe, bleibt es auch ein 'ü' nur der Cstring mag das ü nicht so sehr :).
Edit:
Auch wenn ich ein unsigned char verwende und 'ü' = 252 ist funktioniert es leider nicht :(.
-
In welchem Encoding ist die Datei abgespeichert?
-
THPS schrieb:
Ich möchte gerne einen Cstring aus aus einzelnen char zeichen zusammensetzen(Eine Datei wird Zeichenweise ausgelesen).
Sobald ich aber das ü ... hinzufüge kommt nur Müll in dem CString an.
Ich vermute Probleme mit dem Zeichensatz, jedoch bin ich schon bei der -4 skeptisch denn im Ansicode müsste ü ja 253 sein oder nicht?
Genau so ist es wohl.
Wenn Du Umlaute richtig anzeigen möchtest solltest du dem Compiler das
duch Verwendung der richtigen CodePage auch sagen.http://msdn.microsoft.com/en-US/library/2x8et5ee(v=vs.100).aspx
sowie:
http://msdn.microsoft.com/en-US/library/39cwe7zf(v=vs.80).aspx
PS: 'ü' -4 oder 253 ist nur eine Frage der Interpretation der 8 Bit im Speicher
-
Ich Rate jedem davon ab Umlaute in seinem Source-Code zu verwernden. Das hat nicht nur mit dem #pragma was zu tun, sondern auch noch mit dem Encoding der Source-Datei... Ich rate entweder zu "\uxxxx" oder die Texte aus Resourcen zu lesen.