今天在down代码时遇到了例如以下问题:
[xxx@xxx ~]$ svn co https://xxxxxxxxxxxxx
svn: Can't convert string from 'UTF-8' to native encoding:
svn: xxxxxxxx/include/xml_inc/XML/?194?184?
194?
180?194?188?195?
190 mcXML.h
这个问题主要是代码中包括了中文名字的文件,svn这边的编码不支持造成的。
在网上查了一些资料,基本上都是用以下的方法。可是都无论用(切割线以内的是不好使的方法)
==========================================切割线==========================================
由于SVNclient须要utf8来支持中文。
解决的方法非常easy,正确设置当前系统的 locale:
export LC_CTYPE=zh_CN.UTF-8
或者
export LC_CTYPE=en_US.UTF-8 (我设的是en_US.UTF-8)
然后又一次 checkout 就可以。
假设 export LC_CTYPE=zh_CN.UTF-8 提示
warning:> locale
locale: Cannot set LC_CTYPE to default locale: No such file ordirectory
locale: Cannot set LC_MESSAGES to default locale: No such file ordirectory
locale: Cannot set LC_ALL to default locale: No such file ordirectory 等信息
能够尝试
locale-gen en_US.UTF-8
==========================================切割线==========================================
用了上面的这些方法之后:[xxx@xxx ~]$ svn update
svn: Error converting entry in directory 'xxxxxxxx/include/xml_inc/XML' to UTF-8
svn: Valid UTF-8 data
(hex:)
followed by invalid UTF-8 sequence
(hex: b8 b4 bc fe)
还是不行
问了一下其它同事的解决的方法:
将.bashrc中加上这么一行:
export LANG=zh_CN.GB18030
[xxx@xxx ~]$ locale
LANG=zh_CN.GB18032
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
这样就好使了,下载途中另一点小问题。会出现
svn: 方法 REPORT 失败于 “/xxxxxx/!svn/vcc/default”: 200 OK (https://xxxxxxxxxxxxxxx)
我们无论它,直接再运行以下语句就可以解决svn的问题
[xxx@xxx ~]$ svn update