命令行SVN执行任意选项均报错:无法转换字符串为UTF-8
SVN全局报错 "Can't convert string from native encoding to 'UTF-8'" 解决指南
问题场景
- 长期使用TortoiseSVN,近期用于Unreal 5开发时触发全局编码转换错误
- 所有仓库(包括无近期提交的私有仓库)均受影响,GUI及命令行下所有SVN命令(甚至基础的
svn help)都无法正常执行,报错信息如下:
svn help
svn: E720087: Can't convert string from native encoding to 'UTF-8':
svn: E720087: help
- 系统始终为en-us区域设置,使用cmd默认Consolas字体;已尝试重启系统、重装/升级TortoiseSVN、恢复PATH、从编辑器复制命令执行等操作,均无改善
- 近期仅对系统做过两项更改:添加PATH条目(已恢复)、安装JetBrains Rider试用版
排查与解决步骤
1. 检查非Unicode程序语言设置
Windows的「非Unicode程序使用的语言」可能被第三方软件(如Rider)篡改,即使系统区域是en-us也会影响SVN:
- 打开「控制面板」→「区域」→「管理」选项卡
- 点击「更改系统区域设置」,确认选择「英语(美国)」
- 重启系统后测试
svn help命令
2. 重置SVN全局配置
TortoiseSVN的配置文件可能被意外修改导致编码异常:
- 打开TortoiseSVN设置窗口,切换到「General」选项卡
- 先点击「Save to file」备份当前配置,再点击「Reset to defaults」恢复默认设置
- 关闭设置后重新打开命令行测试SVN命令
3. 清理异常环境变量
JetBrains Rider可能添加了影响编码的环境变量:
- 打开cmd,执行
set命令,查看是否存在LC_ALL、LANG、SVN_ENCODING等异常变量 - 如果存在,执行
set LC_ALL=、set LANG=临时清除,然后测试SVN - 若临时有效,右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统/用户变量中删除这些异常变量
4. 修复cmd代码页设置
确保cmd使用兼容的编码:
- 打开cmd,执行
chcp 65001切换到UTF-8代码页,然后测试svn help - 如果有效,设置cmd默认使用UTF-8:
- 打开cmd属性窗口→「选项」→「当前代码页」选择65001
- 或修改注册表:定位到
HKEY_CURRENT_USER\Console\%%SystemRoot%%_system32_cmd.exe,将CodePage值改为十进制65001
5. 卸载JetBrains Rider并清理残留
若上述步骤均无效,尝试卸载Rider并清理相关配置:
- 从控制面板卸载JetBrains Rider
- 删除以下目录的残留文件:
C:\Users\<你的用户名>\.Rider<版本号>C:\Program Files\JetBrains\Rider
- 重启系统后重新测试SVN命令
内容的提问来源于stack exchange,提问作者Acade
相关产品推荐
相关产品推荐

