是否可以将Windows API ANSI函数与UTF-8字符串一起使用?
例如,假设我有一个用UTF-8编码的路径。是否可以调用CreateDirectoryA
或CreateFileA
并使用UTF8路径,或者在调用函数之前必须执行一些转换?
发布于 2012-01-12 14:52:34
不是的。使用MultiByteToWideChar
将UTF-8转换为UTF-16,然后调用CreateDirectoryW
或CreateFileW
等宽字符API。
发布于 2021-09-14 16:29:26
接受的答案不再正确(自Windows版本1903 ( 2019年5月更新)起)。
应用程序现在可以将进程的活动代码页设置为UTF-8。这允许...A
函数(和CP_ACP
)使用UTF-8。这样做的清单如下所示
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity type="win32" name="..." version="6.0.0.0"/>
<application>
<windowsSettings>
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
</windowsSettings>
</application>
</assembly>
来源和更多信息:Use the Windows UTF-8 code page
https://stackoverflow.com/questions/8831143
复制相似问题