svn: E000022: Can't convert string from 'UTF-8' to native encoding: svn报错,修复版本发

这个错误是因为 SVN 客户端在尝试把 UTF-8 编码的文件名转换成当前系统“本地编码”时失败,根本原因就是系统的 locale 没有设置为 UTF-8。解决思路:把系统 locale 改成 UTF-8 即可。
Linux 通用做法(CentOS、Ubuntu、Debian 等均适用)
  1. 查看当前 locale
    locale
    如果看到 LC_ALL=LANG= 后面不是 *.UTF-8,就需要改。
  2. 临时生效(仅当前会话,测试用)
    复制
    export LC_ALL=en_US.UTF-8
    export LANG=en_US.UTF-8
    export LANGUAGE=en_US.UTF-8
    然后重新执行 svn up/svn co 测试。
  3. 永久生效(推荐)
    把同样的三行追加到当前用户的环境文件:
    复制
    echo -e "\nexport LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8\nexport LANGUAGE=en_US.UTF-8" >> ~/.bashrc
    source ~/.bashrc
    如果是所有用户,写到 /etc/profile/etc/bash.bashrc 里即可
  4. 确认系统已安装 UTF-8 语言包
    Debian/Ubuntu:
    sudo apt-get install language-pack-en
    CentOS/RHEL:
    sudo localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
    若提示 No such file or directory,先安装语言包再执行。
Windows 客户端
  • TortoiseSVN:
    右键 → TortoiseSVN → Settings → General → Language → 选 “English (United States)” 或 “中文(简体,中国)” 并确保系统区域设置已启用 UTF-8(Win10/11:设置 → 时间和语言 → 区域 → 相关设置 → 管理 → 更改系统区域设置 → 勾选 “Beta: 使用 Unicode UTF-8…”)。
  • 命令行:
    在 Git Bash / PowerShell 里先执行
    复制
    set LC_ALL=en_US.UTF-8
    set LANG=en_US.UTF-8
    然后再运行 svn
完成上述步骤后,再次执行 svn up/svn coE000022: Can't convert string from 'UTF-8' to native encoding 就不会再出现。
上一篇 没有了
下一篇 免费空间建站资源盘点