ICU unicode/UTF-16 converter
-
Hallo Zusammen !
Ich bin gerade dabei in c++ unter Linux via dirent.h bzw. opendir() einen Verzeichnis Stamm einzulesen.
Dummerweise sind in den Unterverzeichnisen CIFS (Windows Shares) gemountet und das heisst, das jedemenge öäüß usw. auftauchen. Zum Glück kann ich wenigstens die aufkommen Leerzeichen maskieren. Was mir aber nicht gelingt sind die Sonderzeichen (öäüß uws.) korrekt darzustellen.
Ich habe mir jetzt ICU 3.8 installiert und wollte das Problem mit Hilfe von unicode lösen.
Leider ist das weit aus komplizierter als gedacht.Kann mir jemand helfen, wie ich die Sonderzeichen (ö = \u00f6 bzw.\xC3\xB6) in UTF-16 bzw. den korrespondierenden HEX Wert
umrechnen kann ?Vielen Dank im Voraus
B.-D.System:
openSuse 10.2 kernel 2.6.22.6
g++ (GCC) 4.1.2 20061115
-
Nimm besser kein ICU. Das ist irgend wie umständlich, viel zu groß und kompliziert.
Schau dir mal UTF8-C++ an, auf der Startseite ist direkt ein Beispiel, bei dem UTF-16 in UTF-8 umgewandelt wird.
Ansonsten schau dir man: iconv(3) an, das ist auch ziemlich leicht zu benutzen.
HTH