需要把svn代码拉倒本地,使用svn export,用户密码什么的认证后,就会出现下载的文件列表,最后会以题目这句结尾。
1 |
svn error:“svn: Can’t convert string from ‘UTF-8′ to native encoding” |
我一直以为这只是提醒编码有问题,并未在意,但是看下拉下来的目录发现很多文件没拉下来。换了svn checkout什么的都不行。
最后才知道,尼玛,这个错误直接就会让下载停止。
其实但看错误基本能知道是编码的问题,查了一下,果然,就是因为svn库中包含中文文件名,本地不支持中文。
在linux上Locales用来定义用户所使用的语言,用户使用的字符集。
01 |
$locale |
02 |
LANG=en_US |
03 |
LC_CTYPE="en_US" |
04 |
LC_NUMERIC="en_US" |
05 |
LC_TIME="en_US" |
06 |
LC_COLLATE="en_US" |
07 |
LC_MONETARY="en_US" |
08 |
LC_MESSAGES="en_US" |
09 |
LC_PAPER="en_US" |
10 |
LC_NAME="en_US" |
11 |
LC_ADDRESS="en_US" |
12 |
LC_TELEPHONE="en_US" |
13 |
LC_MEASUREMENT="en_US" |
14 |
LC_IDENTIFICATION="en_US" |
15 |
LC_ALL= |
因为字符集设置UTF-8的字符编码。
解决方案就是开启UTF-8字符集。
1 |
export LANG="zh_CN.UTF-8" |
执行后我们就能看到:
01 |
$ locale |
02 |
LANG=en_US |
03 |
LC_CTYPE="zh_CN.UTF-8" |
04 |
LC_NUMERIC="zh_CN.UTF-8" |
05 |
LC_TIME="zh_CN.UTF-8" |
06 |
LC_COLLATE="zh_CN.UTF-8" |
07 |
LC_MONETARY="zh_CN.UTF-8" |
08 |
LC_MESSAGES="zh_CN.UTF-8" |
09 |
LC_PAPER="zh_CN.UTF-8" |
10 |
LC_NAME="zh_CN.UTF-8" |
11 |
LC_ADDRESS="zh_CN.UTF-8" |
12 |
LC_TELEPHONE="zh_CN.UTF-8" |
13 |
LC_MEASUREMENT="zh_CN.UTF-8" |
14 |
LC_IDENTIFICATION="zh_CN.UTF-8" |
15 |
LC_ALL=zh_CN.UTF-8 |
转载请注明:旅途@KryptosX » svn error:“svn: Can’t convert string from ‘UTF-8′ to native encoding”错误记录