Boost logo

Boost Users :

From: William Kappler (wekapple_at_[hidden])
Date: 2022-04-03 05:30:46


 I'm trying to sidestep some issues with unicode filenames on Windows
(MSYS64) using Boost.Nowide. Specifically, my program operates in UTF-8,
and providing that to std/Boost functions yields incorrect filenames due to
them being interpreted as UTF-16 (or something along those lines).

However, the primary functions I have issues with are from
Boost.PropertyTree. Specifically, read_json and write_json. These functions
don't seem to be Nowide-friendly.

I tried just calling boost::nowide::nowide_filesystem() before my json
calls, hoping it would work; it did not, I got the same mangled filenames.
My next thought was to see if a nowide stream could be substituted into the
stream-taking variants of read_json/write_json; it cannot be, they aren't
compatible.

The only option that seems to leave is something along these lines:
https://stackoverflow.com/a/21537818, but using Nowide to read in the file.
That adds a lot of steps (and possibly memory usage). It feels like I'm
missing something.

Any suggestions would be appreciated. Thanks in advance.

:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-
*William E. Kappler II*
Software Designer and Programmer
william-kappler.com



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net