安装版启动报 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')
现象:
一句话原因:旧版安装包(V6.0.0 – V6.0.2)在中文 Windows 上会把配置文件
MRRC.conf 按 GBK(系统编码)写回,而服务器启动时固定按 UTF-8 读配置,
于是中文内容(例如带中文用户名的路径)让启动直接失败。这是文件编码问题,不是硬件/电台问题,修好后原有配置、登录账号都不会丢。
📌 想先确认再动手?运行修复工具时加 -DryRun,只检查、不改文件。
⬇️ mrrc-windows-config-fix.zip(5.6 KB,免安装)
保持 3 个文件在同一个目录里:
fix_mrrc_encoding.bat ← 双击这个
fix_and_start_mrrc.bat ← 或者双击这个(修复并启动)
fix_mrrc_encoding.ps1 ← 实际逻辑,别删
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,我们帮你定位