2009-04-01 6 views
4

Meine Quelldatenbank verwendet meistens UTF8, aber eine ältere Bibliothek enthält Windows Latin1-codierte Zeichenfolgen, die darin fest codiert sind.Wie ändert man die Codierung von Latin1-UTF8 in C++ (vielleicht mit Boost)?

Ich hatte gehofft, Boost würde eine klare Konvertierung haben, aber ich habe nicht gefunden. Muss ich wirklich solch eine alltägliche Lösung manuell codieren?

Sie suchen nach einer portablen Lösung, die unter Linux läuft.

(This Q ist ähnlich, aber nicht ganz das gleiche)

Edit: ICU scheint die richtige Antwort zu sein, aber es ist ein bisschen übertrieben für meine Bedürfnisse. Am Ende habe ich String-Replace für die bekannten Extended Chars gemacht.

Antwort

3

International Components for Unicode (ICU) hat die Lösungen, die Sie suchen. Boost kann mit Unterstützung für ICU zusammengestellt werden, z.B. für Boost reguläre Ausdrücke, aber vorkompilierte Versionen von Boost enthalten es normalerweise nicht.