有时使用svn检出时遇到这样的错误:
svn: Can't convert string from 'UTF-8' to native encoding: ...
这是可能是由于svn所在主机的当前字符集不支持Unicode造成的,确认方法是:运行"locale"指令,输出为:
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=en_US
"en_US"后面没有".UTF-8",/etc/default/locale文件的内容是:
LC_ALL="en_US"
也没有".UTF-8",解决方法很简单,在后面加上".UTF-8",变为
LC_ALL="en_US.UTF-8"
这时再运行locale命令,结果如下:
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
这时再检出中文文件名文件就不报错了。
在CentOS上,对应的locale文件是/etc/sysconfig/i18n。