根本原因是.reg文件未采用Windows注册表原生支持的UTF-16 LE编码,导致中文被错误解析;须用记事本另存为“UTF-16 LE”编码,验证首两字节为FF FE,并将系统区域设置设为“中文(简体,中国)”后重启生效。

REG文件导入注册表后中文显示为方块、问号或一堆乱码字符,根本原因是文件保存时未采用Windows注册表原生支持的Unicode编码格式,导致字符串字段被错误解析;直接双击导入UTF-8或GBK编码的.reg文件,95%以上会出现此问题。
用记事本将REG文件转为UTF-16 LE编码
右键点击已编辑好的.reg文件→选择“打开方式”→“记事本”。【切勿用VS Code、Notepad++等默认UTF-8保存的编辑器直接另存】
在记事本中按 Ctrl + A 全选→Ctrl + C 复制全部内容→新建一个空白记事本窗口→Ctrl + V 粘贴。
点击“文件”→“另存为”→在“编码”下拉菜单中必须手动选中“UTF-16 LE”(不是“UTF-8”,不是“ANSI”,也不是“Unicode”这个模糊选项)→点击“保存”。
覆盖原文件或另存为新名称均可,但扩展名务必保持为 .reg。
用PowerShell验证REG文件真实编码
方法一:快速十六进制校验
以管理员身份运行PowerShell→输入:Get-Content -Path "C:\path\to\your.reg" -Encoding Byte -TotalCount 4 | ForEach-Object { $_.ToString("X2") }→回车。
若输出前两字节为 FF FE,说明是UTF-16 LE;若为 EF BB,则仍是UTF-8,需退回上一步重新保存。
方法二:文本特征判断
用记事本打开该.reg文件,第一行应为“Windows Registry Editor Version 5.00”,且该行开头不可见空格或BOM异常符号;若首字符位置显示为空白或乱码小方块,大概率编码错误。
导入前强制刷新注册表编辑器环境
第一步:关闭所有已打开的regedit.exe进程。可在任务管理器中搜索“regedit”,结束全部实例。
第二步:按 Win + R 输入 intl.cpl→回车→进入“区域”设置→切换到“管理”选项卡→点击“更改系统区域设置”→勾选“Beta版:使用Unicode UTF-8提供全球语言支持”必须取消勾选→将“当前系统区域设置”明确设为“中文(简体,中国)”→点击“确定”。
第三步:重启电脑或至少注销当前用户并重新登录——【这一步不可跳过,否则注册表编辑器仍沿用旧解码逻辑】。
第四步:双击刚保存为UTF-16 LE的.reg文件→点击“是”确认导入→立即打开regedit检查对应路径下的中文值是否正常显示。

















