boost::filesystem::path korrekt mit unicode arbeiten



  • Hi Ho,

    Ich benutzt boost::filesystem::path für pfad/verzeichnis handling.

    Nun ist es so das ich intern alles als Utf8 halte,
    und auch immer in utf8 konvertiere.
    Wenn ich jetzt aber fs::path eine zeichenkette übergebe,
    erwartet es eine Kodierung, die das OS benutzt.
    Auf windows also utf16, was einem wchar_t entspricht.

    TestCase:

    QString filename;
    fs::path mypath = filename.toUtf8().constData();
    fs::ofstream out (mypath);
    out << "this is a test";
    out.close();
    

    Ich möchte aber nun verhinden das ich überall
    #ifdef WIN benutze und immer zu Utf16 konvertiere,
    ansonsten utf8 benutze.

    Gibt es eine Möglichkeit fs::path(und alle anderes fs funktionen) so einzustellen, dass immer ein utf8-String erwartet wird, und intern dann in die OS spezifische kodierung umgewandelt wird.


Anmelden zum Antworten