编码问题:svn无法更新

 

最近的Ubuntu10.04桌面执行了自动更新之后,终端窗口的编码好像有点问题。

 

其中一个问题是,我用ssh连接到开发机(Fedora5+GB2312编码),执行svnup出错:

svn: Can't convert string from 'UTF-8' to native encoding:

svn: datacenter/hook/?/229?/143?/130?/232?/128?/131?/232?/181?/132?/230?/150?/153

 

过去是正常的,不知道为什么出错。

解决办法是:删除源代码,端口窗口的编码选择GBK,然后重新svn co就行了。

 

如果汉字显示为乱码,可以执行

LANG=en_US

即可显示为英文

 

但是再次执行svn up又不行了,最终,发现是文件名使用了中文造成,设置了编码后,文件系统中的文件名用的编码可能和环境不同就会造成类似问题。

 

'参考资料'四个汉字的GBK编码为:

B2 CE BF BC D7 CA C1 CF

 

UTF-8编码为:

E5 8F 82 E8 80 83 E8 B5  84 E6 96 99

 

再看svn的错误信息:

svn: datacenter/hook/?/229?/143?/130?/232?/128?/131?/232?/181?/132?/230?/150?/153

翻译成16进制是

E5 8F 82 E8 80 83 E8 B5  84 E6 96 99

说明这个文件夹在提交的时候使用的UTF-8编码,而系统环境设置的是GB2312,因此造成SVN对这个文件夹的处理出错。

 

因此,如果在Linux服务器上做开发等工作,建议最好还是使用默认的也是被支持最好的UTF-8编码,可以减少很多不必要的麻烦。

如果实在要改成其他编码,也最好规定使用制度,人为保证文件内容编码,中文文件名编码务必统一。

 

你可能感兴趣的:(Linux,svn,encoding,ubuntu,string,服务器,linux)