首选方案是将系统“非unicode程序的语言”设为中文(简体,中国)并重启,使系统以gbk(代码页936)解析安装包资源;若无效,可尝试区域双切重置、快捷方式注入chcp 936或修改注册表acp/oemcp为936。

电脑安装软件时提示窗口文字显示为方块、问号或日文假名,说明系统正用错误的字符编码解析安装程序的界面资源,根源在于非Unicode程序的语言设置未匹配软件内置编码——不改这项,装再多字体或调DPI都没用。
通过控制面板设为中文(简体,中国)并重启
这是解决绝大多数乱码的首选路径,直接让系统以GBK(代码页936)解析中文安装包的资源文件。
按下Win + R,输入control回车,打开控制面板。
右上角“查看方式”设为大图标,点击【区域】。
切换到【管理】选项卡,点击【更改系统区域设置】。
在下拉菜单中选择【中文(简体, 中国)】,务必取消勾选【Beta版:使用Unicode UTF-8提供全球语言支持】——该选项会强制旧安装程序用UTF-8解码,反而把GBK文字全变成乱码。
点击【确定】,系统弹出“必须重启计算机才能应用更改”,立即重启。不重启,设置不会加载进内核层,安装程序仍读取旧编码。
临时切换区域再切回:双切法重置缓存
已设为中文但乱码还在?很可能是explorer.exe或msiexec进程缓存了旧代码页映射,需要强制刷新底层缓存。
第一步:按Win + I进入“设置”→“时间和语言”→“语言和区域”,将“国家或地区”临时改为美国。
第二步:打开控制面板→区域→管理→更改系统区域设置→选英语(美国)→确定→重启电脑。
第三步:重启后再次进入同一路径,把区域设置改回中文(简体, 中国)→再次重启。
两次重启之间不能跳过,否则缓存无法清空;第二次重启后,所有服务进程都会重新读取新区域参数。
为单个安装程序创建带代码页注入的快捷方式
不想动全局设置,或需同时运行中/日/韩多语种安装包?可用快捷方式精准隔离编码环境。
方法一:命令行注入chcp 936
右键桌面→新建→快捷方式→在“请键入对象的位置”中粘贴:
cmd /c chcp 936 >nul & start "" "C:\Setup\Installer.exe"
把路径替换成你实际的安装程序完整路径,含空格的路径必须用英文双引号包裹。
方法二:批处理封装(更稳定)
新建文本文档,输入以下三行:
@echo off
chcp 936 >nul
start "" "C:\Setup\Installer.exe"
保存为Install_CN.bat,双击运行即可启动安装程序且强制使用GBK编码。
【注意】若双击.bat无反应,大概率是组策略禁用了脚本执行——此时改用方法一的快捷方式方案,它绕过PowerShell执行策略限制。
检查注册表关键项是否一致
当控制面板灰显、区域设置项不可编辑,或批量部署时,可直接修改注册表确保底层参数生效。
按Win + R输入regedit,定位到:
HKEY_CURRENT_USER\Control Panel\International
确认右侧值:
LocaleName = zh-CN
sCountry = China
sLanguage = zh-CN
再导航至:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
双击ACP,数值数据设为936;双击OEMCP,同样设为936。
改完关闭注册表编辑器,重启电脑——这两项写入内核级代码页参数,比用户级设置优先级更高。











