从 Windows 10 v1903 开始,您可以使用应用程序清单来设置给定进程的活动代码页,该代码页可能与系统范围的代码页不同:
<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>
Run Code Online (Sandbox Code Playgroud)
显然,如果您需要支持旧版本的 Windows,应用程序仍然必须意识到CP_ACP可能不支持CP_UTF8,并自行执行任何必要的转换。
CP_ACP代表系统Ansi代码页.您无法在每个进程或每个线程的基础上更改它.这是一个系统范围的设置.如果DLL真的依赖于CP_ACP内部,那么除了在与DLL交互时将你的转换为/转换为UTF-8,别无选择.
| 归档时间: |
|
| 查看次数: |
4077 次 |
| 最近记录: |