红联Linux门户
Linux帮助

解决archlinux下mldonkey中文文件名乱码的方法

发布时间:2008-01-29 16:18:46来源:红联作者:rmidable
mldonkey中文文件名下载下来是下滑线,google了一下,但解决的办法不外乎两种:

1、一段java程序,下载后转码改名。但这种方法我不知道是怎样实现的,因为下载下来的中文变成了下划线,并不是编码不正确。

2、utf8补丁,我看了下这个patch,并对照源码,现在的2.9.2官方源码中已经包含了这个patch,所以,很多人说打了这个patch就OK了,真不知道他们是怎样实现的。

真正要解决mldonkey的中文名的问题,其实实质就是要正确设定mlnet运行的用户的LANG和LC_ALL环境变量,我是以mlnet这个用户运行的。

编辑mlnet这个用户的.bashrc和.bash_profile,增加两行:
export LANG=zh_CN.UTF8
export LC_ALL=zh_CN.UTF8

ok,用mlnet登陆后,执行mlnet&,就可以看见mlnet的输出信息,已经是utf8了。

但是如果用/etc/rc.d/mldonkey start仍然会中文下划线,怎么回事呢?

看看/etc/rc.d/mldonkey这个文件:

其中, su -l "$MLUSER" -c "/usr/bin/mldonkey& >/tmp/mldoney.log&"

看看/tmp/mldonkey.log,仍然是ANSI的。

测试一下,root下:su -l mlnet -c "echo $LANG"

输出zh_CN.UTF8,正确的啊!!不知道这是不是mldonkey的bug。

那么,采取一个折衷办法,把su的 -l 参数去掉,把root的LANG,和LC_ALL变量设为zh_CN.UTF8。

现在执行/etc/rc.d/mldonkey start,再看下/tmp/mldonkey.log,应用到UTF8了,呵呵。

注释:su -l 的意思是以mlnet的用户开个shell,并应用mlnet用户的环境变量。
文章评论

共有 0 条评论