Если что, OsStr на винде как раз WTF-8 encoded.
Microsoft's compilers often fail at producing UTF-8 string constants from UTF-8 source files. The most reliable method is to turn off UNICODE, not mark the input file as being UTF-8 (i.e. do not use a BOM), and arrange the string constants to have the UTF-8 bytes. If a BOM was added, a Microsoft compiler will interpret the strings as UTF-8, convert them to UTF-16, then convert them back into the current locale, thus destroying the UTF-8.[15] Without a BOM and using a single-byte locale, Microsoft compilers will leave the bytes in a quoted string unchanged.
ох лёль