Don't be surprised such UTF-8 locale program will break so bad on Windows with default language set to Japanese.
Why would it break? If you just assume that the system codepage is UTF-8, then sure. If you specifically say in your manifest that you want UTF-8, then Windows (10+) will give you UTF-8 regardless of which locale it is:
https://learn.microsoft.com/en-us/windows/apps/design/global...
It depends. If you're writing an app, just add the necessary incantation to your manifest, and all the narrow char APIs start talking UTF-8 to you.
For a library, yeah.