Windows 启动修复

安装版启动报 UnicodeDecodeError: 'utf-8' codec can't decode byte ...?两步修好,无需重装

🔍 你是这个故障吗

典型报错(在黑色的服务器窗口里,或在启动器的输出里):

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 29: invalid continuation byte
  File "MRRC", line 175, in <module>
    config.read(config_file, encoding='utf-8')

现象:

  • 双击 MRRC 图标后,黑色窗口一闪而过,浏览器打不开;
  • 或者启动窗口停在 "Server exited during startup — see messages above.";
  • 端口 8877 无响应,开始菜单里怎么点都起不来。

一句话原因:旧版安装包(V6.0.0 – V6.0.2)在中文 Windows 上会把配置文件 MRRC.conf 按 GBK(系统编码)写回,而服务器启动时固定按 UTF-8 读配置, 于是中文内容(例如带中文用户名的路径)让启动直接失败。这是文件编码问题,不是硬件/电台问题,修好后原有配置、登录账号都不会丢。

📌 想先确认再动手?运行修复工具时加 -DryRun,只检查、不改文件。

🚀 一分钟修复(推荐)

1

下载修复工具

⬇️ mrrc-windows-config-fix.zip(5.6 KB,免安装)

2

解压到任意文件夹

保持 3 个文件在同一个目录里:

fix_mrrc_encoding.bat        ← 双击这个
fix_and_start_mrrc.bat       ← 或者双击这个(修复并启动)
fix_mrrc_encoding.ps1        ← 实际逻辑,别删
3

双击 fix_and_start_mrrc.bat

它会先把配置转成 UTF-8(原文件自动备份为 MRRC.conf.bak),然后启动 MRRC。成功时会看到:

========================================
  MRRC 配置编码修复(中文 Windows)
========================================
数据目录:C:\Users\你的用户名\AppData\Local\MRRC
本机 ANSI 代码页:936(gb2312)

== 转换文件
  [修复] MRRC.conf:GB2312 (代码页 936) -> UTF-8(原文件已备份为 MRRC.conf.bak)

== 结果
  [OK]   1 个文件已修复为 UTF-8
        请重新启动 MRRC(关闭旧窗口后从开始菜单启动)。

📌 如果 Windows 弹出"已保护你的电脑":点「更多信息」→「仍要运行」;或右键 bat → 属性 → 勾选"解除锁定"。

以后怎么启动

建议日常就用 fix_and_start_mrrc.bat 启动(或把它发送到桌面快捷方式): 旧版安装包在网页设置页保存后会再次把配置写成 GBK,这个 bat 每次都会先修再启,避免反复出问题。

⚡ 不用下载:一行命令修复

适合远程协助/不方便拷文件的场景。在 PowerShell 窗口里粘贴回车:

$p="$env:LOCALAPPDATA\MRRC\MRRC.conf"; $b=[IO.File]::ReadAllBytes($p); try{[Text.UTF8Encoding]::new($false,$true).GetString($b)|Out-Null; "已是 UTF-8"}catch{Copy-Item $p "$p.bak" -Force; [IO.File]::WriteAllText($p,[Text.Encoding]::GetEncoding(936).GetString($b),[Text.UTF8Encoding]::new($false)); "已修复为 UTF-8(备份 $p.bak)"}

看到「已修复为 UTF-8」后,从开始菜单重新启动 MRRC 即可。原文件同样保留在 MRRC.conf.bak。

📦 安装包下载

当前 Windows 安装包:

⬇️ MRRC-Setup.exe(V6.1.18,约 45 MB)

安装后配置文件 %LOCALAPPDATA%\MRRC\MRRC.conf
登录信息 %LOCALAPPDATA%\MRRC\MRRC Quick Start.txt
配置备份(修复后) %LOCALAPPDATA%\MRRC\MRRC.conf.bak

📌 本修复自 V6.0.3 起已内置(读配置自动容错并迁移为 UTF-8、保存固定写 UTF-8), 新版安装包(当前 V6.1.18)装上即可,无需再跑修复工具;只有更早的安装包才需要上面的修复工具。

❓ 常见问题

为什么会出现这个问题?

中文 Windows 的默认文本编码是 GBK。安装包里的程序在保存配置时用了系统默认编码(写出 GBK), 而读取配置时按 UTF-8 解析。只要配置里有中文(最常见是带中文用户名的 C:\Users\张三\AppData\Local\MRRC\... 路径),下一次启动就会解码失败。

修好后,在网页里保存设置又坏了怎么办?

再跑一次修复工具即可(旧版保存设置时还会写回 GBK)。或者一直用 fix_and_start_mrrc.bat 启动——它每次启动前都会自动检查并修复。 根治请等内置修复的新安装包(V6.0.3)。

怎么确认已经修好?

修复工具显示「已是 UTF-8,无需修复」就是正常状态;或再次运行 fix_mrrc_encoding.bat -DryRun 预演,若显示无需转换即已修好。 启动成功的标志是服务器窗口出现 Using config file: ... 且浏览器能打开 https://localhost:8877。

会丢配置或密码吗?

不会。工具只做「字节 → 文本 → UTF-8 字节」的转换,内容不变,并且把原文件原样备份为 MRRC.conf.bak;登录账号文件(MRRC_users.db)默认不动。 想回滚就把 .bak 改回 MRRC.conf。

工具用的是什么参数?

fix_mrrc_encoding.bat -DryRun 只检查;-IncludeAux 同时转换 MRRC_users.db / memory_channels.json / atr1000_tuner.json; -SelfTest 自检验证编码识别逻辑。

还没解决?

把服务器窗口里的完整报错发到 Issues,我们帮你定位