首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > CVS SVN >

subversion的svn命令行展示乱码的解决

2012-06-26 
subversion的svn命令行显示乱码的解决以前一直遇到svn在命令行下显示的问题,我总是直接下载zip包,直接解压

subversion的svn命令行显示乱码的解决
以前一直遇到svn在命令行下显示的问题,我总是直接下载zip包,直接解压使用svn,因为控制台默认代码页为cp936,显示总是为乱码,使用时为省事,总是先
chcp 437
再切换回来
chcp 936
这样就可以看到正常的英文了。当然,这也是解决办法的一种,但中文OS下这么优秀的一个用apr-iconv的工具无法显示中文太可惜了。

今天看了apr_iconv的相关库的说明,原来,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

这里要注意的是,如果你的环境中还有其它软件使用了这个变量,那就有可能造成混淆,所以设置成系统环境变量的话要注意这个问题。

热点排行