使用GetShortPathName.它将返回文件的旧(8.3)名称,您应该能够将其转换为char*,因为它不应包含任何非ASCII字符.
我刚用一些特定于语言的字符对它进行了测试,它就像我描述的那样工作.我已经C:\?????\?ó?ó?.tsttgbb使用fopen 成功打开了一个文件.
小智 5
setlocale(LC_ALL, ".65001");\n\nfopen(u8"\xe4\xb8\xad\xe6\x96\x87\xe8\xb7\xaf\xe5\xbe\x84.txt", "rb"); //window7(\xe4\xb8\xad\xe6\x96\x87) vs2017 ok\nRun Code Online (Sandbox Code Playgroud)\n