`
aijuans8
  • 浏览: 187190 次
社区版块
存档分类
最新评论

MLDonkey 下载中文文件乱码解决办法

 
阅读更多

MLDonkey 下载中文文件乱码解决办法

作者:kongxx

MLDonkey是目前在Linux上比较流行的Donkey,但是其核心类库不能很好的处理中文,这一点也让很多中国的养驴专业户望而却步,以下是我在使用MLDonkey的过程中处理文件有中文的一个方法,但是此方法只是在文件下载完后执行转换,在下载过程中仍然不能看到中文,这一点我会在以后想办法处理:

注意:当前版本只支持在添加文件时将一个中文编码为两个字节的情况。

此方法使用的是Java语言编写的一个类作的处理,代码如下:

import java.net.*;

import java.io.*;

public class MLDonkeyUtil {

/**

* mldonkey文件下载存放路径

*/

private String incoming = "/usr/local/mldonkey/incoming";

public static void main(String[] args) throws Exception {

MLDonkeyUtil util = new MLDonkeyUtil();

util.convert();

}

private void convert() {

File dir = new File(incoming);

File[] files = dir.listFiles() ;

for(int i = 0 ; i < files.length ; i++) {

String strDest = convert(files[i].getName());

if(!files[i].getName().equals(strDest)) {

print(files[i].getName() + " >>> " + strDest);

File fDest = new File(files[i].getParent() + File.separator + strDest);

files[i].renameTo(fDest) ;

}

}

}

private String convert(String s) {

int location = 0;

String ret = "";

while(true) {

if(location + 8 <= s.length() ) {

String subStr = s.substring(location ,location + 8);

if(check(subStr)) {

ret += "%" + convert2Hex(subStr.substring(1, 4)) + "%"

+ convert2Hex(subStr.substring(5, 8));

location = location + 8 ;

} else {

ret += s.substring(location ,location + 1);

location = location + 1;

}

} else {

ret += s.substring(location );

break ;

}

}

return URLDecoder.decode(ret) ;

}

/**

* 检查匹配类型(_nnn_nnn

* @param s

* @return

*/

private boolean check(String s) {

if(s.length() != 8) {

return false ;

}

if(s.charAt(0) != '_' || s.charAt(4) != '_') {

return false ;

}

if( isNum(s.charAt(1)) && isNum(s.charAt(2)) && isNum(s.charAt(3))

&& isNum(s.charAt(5)) && isNum(s.charAt(6)) && isNum(s.charAt(7))) {

return true ;

}

return false ;

}

private boolean isNum(char c ) {

if(c >= 48 && c <= 57) {

return true ;

}

return false ;

}

private String convert2Hex(String s) {

int i = Integer.parseInt(s);

if(i < 0 || i > 255) {

throw new IllegalArgumentException();

}

return Integer.toHexString(i);

}

private void print(String str) {

System.out.println(str);

}

}

将此类中的incoming 改为MLDonkey incoming目录,然后再Linux命令行输入以下命令进行编译和执行。

编译

#javac MLDonkeyUtil.java

执行

#java MLDonkeyUtil

如果目录下有需要改中文名的文件,此程序会自动转换,并输出转换前后文件的名称。

分享到:
评论

相关推荐

    MLDonkey下载软件.pdf

    下载文件默认存储在`~/.mldonkey/incoming`目录,用户可以根据需求自定义下载路径。MLDonkey在运行时占用资源极低,适合长时间后台运行。 总的来说,MLDonkey是一款集多功能于一身的P2P下载工具,尽管其配置过程...

    mldonkey-2.9.0p2p文件传输工具

    mldonkey-2.9.0p2p文件传输工具

    mldonkey h608b

    【mldonkey h608b】是一个针对电信猫设备的脱机下载软件解决方案。这个软件让用户体验到了高效便捷的P2P下载服务,尤其是对于那些希望在不占用电脑资源的情况下进行大文件下载的用户来说,是一个理想的选择。...

    MLdonkey_与_sancho_的安装使用

    5. **脚本自动化**:MLdonkey支持自定义脚本,可以根据特定事件执行动作,如完成下载后自动移动文件。 6. **远程控制**:除了Sancho,MLdonkey还提供了Web界面和手机应用,允许你在任何地方管理你的下载。 通过...

    mldonkey-2.9.6.tar.bz2

    MLDonkey是一款性能强劲的P2P客户端和服务器端软件。它最著名的特点是没有界面和支持各种不同的P2P协议。 为什么没有界面是优点呢?这意味着MLDonkey可以在系统启动的时候启动并且在后台运行。如果你想给它一些指示...

    mldonkey用的Server.met文件

    使用方法,使用sancho,打开后进入Console模式,把文件拷贝过去,然后输入 servers /路径/server.met

    remote to control mldonkey .sancho-0.9.4-59-win32-java

    可remotez到linux或者路由器里面的mldonkey添加管理下载BT 电驴等

    安卓mldonkey 客户端

    控制MLDONKEY上传下载必备,非常好用,安卓电子市场提取

    mldonkey-2.95

    linux下的超级电驴,支持ftp,http,BT等

    contact.dat of mldonkey

    安装mldonkey需要的dat文件之一,另一个是nodes.dat

    mldonkey_protocol_handler-2.5.xpi

    mldonkey_protocol_handler-2.5.xpimldonkey_protocol_handler-2.5.xpimldonkey_protocol_handler-2.5.xpi

    mldonkey:跨平台多网络p2p守护程序

    1. **文件共享**:用户可以搜索并下载其他用户共享的文件,同时也可以上传自己的文件,实现全球范围内的资源交换。 2. **种子管理**:对于BitTorrent协议,mldonkey提供了种子管理功能,用户可以创建、上传和分享...

    linux Mldonkey 配置

    配置文件分布在用户的主目录下,例如`~/.mldonkey/downloads.ini`用于基本设置,`~/.mldonkey/servers.ini`存储服务器列表,`~/.mldonkey/files.ini`记录已完成和未完成的下载,`~/.mldonkey/friends.ini`保存好友...

    mldonkey需要的nodes.dat

    mldonkey需要的nodes.dat

    mldonkey-3.1.3.static.i386.Windows

    mldonkey-3.1.3.static.i386.Windows 命令行的,可以下载一个界面工具配合使用,推荐sancho

    nodes.dat for mldonkey

    mldonkey nodes.dat~~~

    mldonkey 3.06所需库文件

    mldonkey 3.06所需的库文件. freetype2-2.4.4.tbz png-1.4.5.tbz jpeg-8_3.tbz gd-2.0.35_7,1.tbz config-0.25_1.tbz expat-2.0.1_1.tbz fontconfig-2.8.0,1.tbz libiconv-1.13.1_1.tbz

Global site tag (gtag.js) - Google Analytics