LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1757|回复: 7

【原创】解决archlinux下mldonkey中文文件名乱码的方法

[复制链接]
发表于 2008-1-9 10:49:56 | 显示全部楼层 |阅读模式
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用户的环境变量。
发表于 2008-1-9 12:05:42 | 显示全部楼层
但现在的mldonkey确实不乱码了啊。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-9 13:21:48 | 显示全部楼层
??我用archlinux 0.8 2  core mldonkey 2.9.2确实只是下划线啊??
回复 支持 反对

使用道具 举报

发表于 2008-1-9 13:29:13 | 显示全部楼层
我的解决办法是自己编译一遍完事。。。
回复 支持 反对

使用道具 举报

发表于 2008-1-9 23:15:55 | 显示全部楼层
这个要看用户的locale了,我的root是en_US,所以一直乱码。
回复 支持 反对

使用道具 举报

发表于 2009-4-25 15:54:21 | 显示全部楼层
晕,刚发现从VeryCD上下的文件中文都是下划线
回复 支持 反对

使用道具 举报

发表于 2009-4-25 18:01:46 | 显示全部楼层
都 3.0 了,还用什么 2.92
回复 支持 反对

使用道具 举报

发表于 2009-4-26 07:25:13 | 显示全部楼层
我这里怎么没问题?LANG=zh_CN.utf8
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表