Tagged: SVN

svn: E000022: Can’t convert string from ‘UTF-8’ to native encoding

今天在服务器上执行 svn checkout 时候,出现这样一行错误:

svn: Can’t convert string from ‘UTF-8’ to native encoding

然后 checkout 程序就退出了!

问题定位后,原因是因为版本库里存在以中文命名的文件,

locale

LANG=”C”
LC_COLLATE=”C”
LC_CTYPE=”C”
LC_MESSAGES=”C”
LC_MONETARY=”C”
LC_NUMERIC=”C”
LC_TIME=”C”
LC_ALL=”C”

“C” 是系统默认的locale,”POSIX” 是 “C” 的别名。
所以当我们新安装完一个系统时,默认的 locale 就是 C 或 POSIX。

解决办法很简单,正确设置当前系统的 locale:

export LC_CTYPE="zh_CN.UTF-8"

LC_TYPE 变量是设置系统的 语言符号及其分类

然后重新 checkout 即可!

你可以直接修改

注意,根据你的系统字符集设置变量,如果 zh_CN.UTF-8 不行,有可能要改成 GB2312:

export LC_CTYPE="zh_CN.GB2312"

但是这只是临时解决方案,如果不想每次都执行这样的命令,
你可以把这条命令放进 ~/.bashrc 里面,即用户登录时自动执行,
也可以把以上内容直接加到svn的钩子里面,解决提交时自动输出处理遇到的问题

了解更多locale:https://979137.com/archives/157.html

最新文章

Return Top