首页 > 代码库 > svn: Can't convert string from 'UTF-8' to native encoding 解决办法
svn: Can't convert string from 'UTF-8' to native encoding 解决办法
今天在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这边的编码不支持造成的。
在网上查了一些资料,基本上都是用下面的方法,但是都不管用(分割线以内的是不好使的方法)
==========================================分割线==========================================
因为SVN客户端需要utf8来支持中文。
解决办法很简单,正确设置当前系统的 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