在 linux 中,svn co, svn up 或者 svnc cleanup 时, 如果有中文文件名的文件,可能会报下面的错:

1
2
svn: Can't convert string from'UTF-8'to native encoding:
svn: src/main/webapp/resources/js/My97DatePicker/?\229?\188?\128?\229?\143?\145?\229?\140?\133

第一行的大致意思是:不能将字符串从 UTF-8 编码转换到本地,主要是因为 SVN 客户端需要 utf8 来支持中文。

第二行报销的文件路径,查看其路径下的文件,肯定是有中文命名的文件。因此需要查看下系统编码文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
LANG=en_US.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C

只需要修改 bash_profile 文件就可以,添加下面几行:

1
2
3
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

然后 source 一下:

1
. ~/.bashrc

这时候,再重新进行 SVN 操作就不会再报 svn: Can't convert string from 'UTF-8' to native encoding: 的错误了。

本文地址 https://shaoshilei.com/2014-04/linux-environment-svn-can-not-convert-string-from-utf-8-to-native-encoding-reimbursement-solutions.html