Ich arbeite mit einem XML-Dump von Wikipedia, der in UTF-8 codiert ist. Im Moment lese ich alles als std :: string ein. Wenn ich also std :: cout auf dem Bildschirm sehe, werden fremde Zeichen als Jibberish angezeigt.XML-Codierung in UTF-8 codieren
Der eigentliche Analysevorgang sucht nur nach ASCII-Zeichen, aber wenn ich die geparste Datei auf Platte schreibe, möchte ich die fremden Zeichen beibehalten. Mit anderen Worten, ich möchte, dass die Ausgabe dieselbe Kodierung wie die Eingabe hat.
Ist es OK, std :: string zu verwenden, oder muss ich etwas wie ICU verwenden? Die Bibliotheken, die ich mir angesehen habe, scheinen übermäßig kompliziert zu sein. Gibt es etwas, das ich schnell verwenden kann?
Funktioniert das auch, wenn ich Zeichen aus der Zeichenfolge entfernen? Zum Beispiel möchte ich jedes Zeichen scannen und "{{" aus der Zeichenfolge entfernen, indem ich alle anderen Zeichen in eine neue Zeichenfolge kopiere. Wird das noch funktionieren ohne zu konvertieren? –
Das Entfernen von ASCII-Zeichen verursacht kein Problem. UTF-8 ist so konzipiert, dass kein Byte in einem Multi-Byte-Zeichen im Bereich 0-127 liegt und daher nicht mit einem ASCII-Zeichen verwechselt werden kann. –