转自:http://my.opera.com/yjfuk/blog/subversion-svn
在中文windows下安装svn的1.4版本,下载了win32的那个zip版本,直接解开安装,并把bin目录添加到path上,在cmd shell上执行svn发现程序的提示信息全是加了斜杠了的数字,一看就知道是经过编码的中文。
svn使用了libapriconv.dll来实现本地化的,apr_iconv是使用环境变量
APR_ICONV_PATH
来获取iconv目录,从而得到相关的.so文件。在中文环境下,因为没找到正确的iconv目录,所以无法得到正确的cp936.so,所以显示成了乱码。
相关代码如下:
/* Fall back on APR_ICONV_PATH if APR_ICONVn_PATH isn't set... * TODO: Drop support for "APR_ICONV_PATH" in apr-iconv 2.0 */ if ((!apr_env_get(&ptr, APR_ICONV_PATH, subpool) || (!apr_env_get(&ptr, "APR_ICONV_PATH", subpool))) && !apr_filepath_list_split(&pathelts, ptr, subpool)) {
可以看到,apr-iconv 2.0以后会不这么使用了
所以,最官方的解决办法就是设置正确的APR_ICONV_PATH环境变量。比如:
set APR_ICONV_PATH=e:\svn\iconv
set LANG=zh_CN.UTF8
其实如果习惯英文,只要加上环境变量LANG=en_US,就可以正确显示英文提示信息了.