Probleme mit C++ und UNICODE/filestreams
-
Hallo zusammen,
Ich möchte gerne mit dem File-Stream-Klassen UNICODE-Dateien schreiben.
Hier gibt es ein Workaround für dieses Problem, welches aber nicht sehr OS-unabhängig aussieht.
(Der Artikel kurz zusammengefasst:Es geht darum, dass die wchar_t Zeichen nach dem C++ Standard in char's via codecvt umgewandelt werden müssen. Dieses wird mit einer eigenen abgeleiteten Klasse umgangen. Ist aber alles IMHO nur auf MS-Compilern lauffähig.)
http://www.codeproject.com/vcpp/stl/upgradingstlappstounicode.asp
Gibt es eine Möglichkeit dieses Problem zu lösen, ohne dabei auf Platformunabhängigkeit zu verzichten und so, dass dieses für alle Sprachen gültig ist (Stichwort: "#include <locale>" ist immer so Compiler- bzw. sprachspezifisch) ?Schonmal vielen Dank
!
-
Was soll daran compiler-spezifisch sein? Die <locale> ist ein offizieller Header des ANSI Standards, also sollte auch jeder vernünftige Compiler den kennen.
-
Hm okay danke, hast eigentlich Recht,
also auch mit Verwendung der locales...gibt es da was plattformunabhängiges (der Artikel bezieht sich wie gesagt auf MS) ?
-
Ich hab' mir den Artikel jetzt nicht komplett durchgelesen, aber dort ist mir nichts MS-spezifisches aufgefallen. (und die codecvt<> Facette, die die als Ansatzpunkt genommen haben, gehört auch zum Standard - inklusive ihrer Memberfunktionen)