在linux平台下用svn checkout会遇到以下报错:
svn: 目录 “Doc” 中的条目从本地编码转换到 UTF8 失败
svn: 不能把字符串从本地编码转换为“UTF-8”编码:
这个是因为svn库中保存的是utf8编码的文件,而本地编码不是utf-8的,所以需要做以下设置才能成功检
首先检查本地编码
[root@localhostdomain trunk]# locale
LANG=zh_CN.GBK
LC_CTYPE=zh_CN.GBK
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
LC_NAME="zh_CN.GBK"
LC_ADDRESS="zh_CN.GBK"
LC_TELEPHONE="zh_CN.GBK"
LC_MEASUREMENT="zh_CN.GBK"
LC_IDENTIFICATION="zh_CN.GBK"
LC_ALL=
可以看到问题就是本地编码不是utf8导致的,有2种方法可以使用:
1.最简单的,当然是export LANG="zh_CN.UTF-8" 临时改变本地编码,只当前用户本次登录有效
2.修改/etc/sysconfig/i18n 中LANG的值,改为LANG="zh_CN.UTF-8",source /etc/sysconfig/i18n,改变系统环境变量,所有用户有效
改完后可观察
[root@localhostdomain trunk]# locale
LANG=zh_CN.UTF-8
LC_CTYPE=zh_CN.UTF-8
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
如此,即可导出svn库中编码为utf8的文件