if path::value_type is wchar_t and the
native wide encoding is UTF-16, or
if path::value_type is char16_t or char32_t,
convert source or [first, last)
to a temporary, tmp, of type path::string_type and
A string is to be read from a database that is encoded in UTF-8, and used
to create a directory using the native encoding for filenames:
namespace fs = std::filesystem;
std::string utf8_string = read_utf8_data();
For POSIX-based operating systems with the native narrow encoding set
to UTF-8, no encoding or type conversion occurs.
For POSIX-based operating systems with the native narrow encoding not
set to UTF-8, a conversion to UTF-32 occurs, followed by a conversion to the
current native narrow encoding.
Some Unicode characters may have no native character
For Windows-based operating systems a conversion from UTF-8 to