Gavin Lambert wrote:
On 16/08/2022 11:31, Peter Dimov wrote:
route.cpp does create a path from argv[2], but interpreting it as UTF-8 would probably be a feature. Using the ACP is wrong anyway as argv[2] is likely in the console code page.
On Windows, the application always receives command line arguments as wchar_t. If you provide the narrow main() entrypoint method then it is the application's runtime startup code that will convert args back to ANSI using the ACP, not the console code page. As such, interpreting argv as ACP is correct
You're right, it is. So path::imbue is wrong even for route.cpp.
(albeit lossy if there were any Unicode characters involved -- the only truly correct design is to only use the wide entrypoint or ignore the entrypoint args and reparse from the original Unicode string).
Also on Windows, in most cases the console code page is also the ACP,
I'm not sure if these ever match. The console code page is 437 for me, and I assume for mostly everyone else.