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)


Anmelden zum Antworten