mldonkey中文文件名下载下来是下滑线,google了一下,但解决的办法不外乎两种:
1、一段java程序,下载后转码改名。但这种方法我不知道是怎样实现的,因为下载下来的中文变成了下划线,并不是编码不正确。
2、utf8补丁,我看了下这个patch,并对照源码,现在的2.9.2官方源码中已经包含了这个patch,所以,很多人说打了这个patch就OK了,真不知道他们是怎样实现的。
真正要解决mldonkey的中文名的问题,其实实质就是要正确设定mlnet运行的用户的LANG和LC_ALL环境变量,我是以mlnet这个用户运行的。
编辑mlnet这个用户的.bashrc和.bash_profile,增加两行:
exportLANG=zh_CN.UTF8
exportLC_ALL=zh_CN.UTF8
ok,用mlnet登陆后,执行mlnet&,就可以看见mlnet的输出信息,已经是utf8了。
但是如果用/etc/rc.d/mldonkeystart仍然会中文下划线,怎么回事呢?
看看/etc/rc.d/mldonkey这个文件:
其中,su-l"$MLUSER"-c"/usr/bin/mldonkey&>/tmp/mldoney.log&"
看看/tmp/mldonkey.log,仍然是ANSI的。
测试一下,root下:su-lmlnet-c"echo$LANG"
输出zh_CN.UTF8,正确的啊!!不知道这是不是mldonkey的bug。
那么,采取一个折衷办法,把su的-l参数去掉,把root的LANG,和LC_ALL变量设为zh_CN.UTF8。
现在执行/etc/rc.d/mldonkeystart,再看下/tmp/mldonkey.log,应用到UTF8了,呵呵。
注释:su-l的意思是以mlnet的用户开个shell,并应用mlnet用户的环境变量。
下载本文示例代码
阅读(378) | 评论(0) | 转发(0) |