解决中文乱码的方案,不需要勾选unicode
assettocorsa吧
全部回复
仅看楼主
level 3
凉月映辉 楼主
如果勾选了控制面板中的unicode,会导致一些老程序乱码,所以才会有以下方案。
需要的准备:
1. windows sdk中的工具 mt.exe, 路径为C:\Program Files (x86)\Windows Kits\10\bin\版本号\x64\mt.exe
2. 游戏根目录下的AssettoCorsa.exe
3. 在根目录下新建一个文件,按照编程惯例,建议命名为AssettoCorsa.exe.manifest, 内容可以从Windows开发者官网复制,地址为 https://learn.microsoft.com/zh-cn/windows/win32/sbscs/application-manifests#activeCodePage,以下为原文示例:
<?xml version="1.0"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">
<activeCodePage>UTF-8</activeCodePage>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
如果习惯使用cmd,则运行命令:
"C:\Program Files (x86)\Windows Kits\10\bin\版本号\x64\mt.exe” -manifest "AssettoCorsa.exe.manifest" -outputresource:"AssettoCorsa.exe;#1"
如果习惯使用powershell,则运行命令:
& "C:\Program Files (x86)\Windows Kits\10\bin\版本号\x64\mt.exe” -manifest "AssettoCorsa.exe.manifest" -outputresource:"AssettoCorsa.exe;#1"
两者的区别仅为powershell需要在开头加一个&,其它完全一样。
命令解释:
1. AssettoCorsa.exe.manifest文件中的核心代码为<activeCodePage>UTF-8</activeCodePage> ,表示将程序设置为utf8
2. 此条命令是将AssettoCorsa.exe.manifest打包进AssettoCorsa.exe,可以理解为修改AssettoCorsa.exe运行时的配置。
总结:
最终此方案达到的效果和勾选是一样的,但是勾选是对所有符合条件的程序生效,而此命令可以只对指定的程序生效。
2024年11月27日 13点11分 1
1