String mit Umlauten einlesen

03/11/2015 - 20:57 von Matthias Taube | Report spam
Ich habe eine Datei, in der Umlaute in der Form

"G\u00fctertransport" anstelle "Gütertransport" codiert sind.
Wie kann ich das beim Einlesen in einen String umwandeln?

LG
Matthias
 

Lesen sie die antworten

#1 Stefan Reuther
04/11/2015 - 18:26 | Warnen spam
Am 03.11.2015 um 20:57 schrieb Matthias Taube:
Ich habe eine Datei, in der Umlaute in der Form

"G\u00fctertransport" anstelle "Gütertransport" codiert sind.
Wie kann ich das beim Einlesen in einen String umwandeln?



Angenommen, das sind normale Unicode-Escapes. Das Finden ist erstmal
recht simpel, ich würde da aus std::string::find, std::string::substr
und std::strtoul was zusammenbauen. Dann hast du den Hexcode '0x00FC'
erstmal parat.

Als nàchstes müsstest du überlegen, was für eine Zeichenkodierung du in
deiner Applikation denn verwendest. Ich verwende intern gern UTF-8, eine
entsprechende Funktion "Unicode-Codepunkt in UTF-8-Bytefolge" ist
schnell getippt (eine entsprechende Konvertierung müsstest du aber allen
extern zugelieferten Strings angedeihen lassen).

Alternativ bietet sich der Systemzeichensatz der C++-Umgebung an. Um aus
einem Unicode-Codepunkt die entsprechenden Bytes des Systemzeichensatzes
zu machen, gibt es die Funktion std::wcrtomb aus <cwchar>.


Stefan

Ähnliche fragen