Chinaunix首页 | 论坛 | 博客
  • 博客访问: 706366
  • 博文数量: 214
  • 博客积分: 5015
  • 博客等级: 大校
  • 技术积分: 2285
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-18 17:02
文章分类

全部博文(214)

文章存档

2008年(43)

2007年(171)

我的朋友

分类:

2007-09-06 10:55:27

    在中文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,就可以正确显示英文提示信息了.

阅读(5830) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~