March 16, 2007
在firefox的扩展中有一个downthemall! 可以实现多线程下载, 下载过程可控, 极大的增强了firefox自带的下载功能。 但downthemall!是国外的朋友开放的, 对这个东亚字符的乱码问题没有考虑在里面, 所以在下载中文的文件中很多时候会出现乱码的情况, 让人感觉很不爽。
本人也是一个菜鸟, 但苦于受这个害, 没办法奋起学之, 东拼西凑, 经过一天的努力, 终于将这个乱码的问题解决, 解决的不算完美, 但可以接受。
修改之后的downthemall! 不会在下载面板中出现的dtaoneclick下的路径中的中文乱码。 同时下载的文件名也不会出现乱码, 可以识别所有的编码并进行转换, 彻底解决乱码问题, 不过有一点小问题, 就是在下载的时候窗口中显示的还是乱码, 但下载下来的文件是不会有乱码的, 而且重新打开dta的管理器, 文件名也不会出现乱码, 我还没有找到这个窗口中的刷新是在哪里修改的. 继续努力中…..
修改后的downthemall! 可以在这里下载。 http://www.newsmth.net/att.php?p.792.39079.984.xpi
××××××××××××××××××××××××××××××××××××××××××××××××××××
本次修改中所修改的的文件有两个, 一个是dta.jar/content/dmoverlay.js, 里面共涉及三处内容的修改
1、增加 this.description = dialog.mLauncher.source.originCharset; 该语句主要用来获得所下载页的编码, 从而为后面的获得正确的解码提供基础。 这个方法来源是mozilla的developer, 地址是这里:http://developer.mozilla.org/en/docs/nsIURI
同时利用了downthemall!的description字段作为编码的存储字段, 用来传递编码, 以便于正确解码。
2、 增加
var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = ‘UTF-8′;
dir = converter.ConvertToUnicode(dir);这个语句用来修正在下载面板中出现的dta下载路径中的中文字的乱码
3、修改了 DTA_AddingFunctions.saveSingleLink(turbo, this.url, this.referrer, “”);将其修改成DTA_AddingFunctions.saveSingleLink(turbo, this.url, this.referrer, this.description); 将网页编码传递过去。
另外修改的一个是dta.jar/content/dta/down.js, 里面涉及一处内容的修改, 增加了下面的这个语句
//start modified by hongfengye 2007-03-14
var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = this.description;
this.fileName = converter.ConvertToUnicode(this.fileName);
this.destinationName = converter.ConvertToUnicode(this.destinationName);
//end modified用来修正下载的文件名, 消除中间的乱码。 我把这个语句加在了moveCompleted : function(fileManager)过程中, 所以乱码修正的时间是在下载完毕的时候修正, 我还没有找到更好的地方进行修正乱码。 尽请原谅
本来我想在这个扩展提取文件名的地方修正乱码的, 这个是最彻底的, 但我一直找不到一个参数的传递, 而已在最初的时候传递参数, 但从论坛上下载文件的时候, 总是会出现文件名自动修改的方式, 这个方式我没有掌握是一个什么过程, 从而没有找到参数的传递。 从而导致修改不成功, 最后还是放弃了。
修改这个扩展用到了sunwan修改greasemonkey中用到的代码, 我直接拿来用了, 在此感谢sunwan。
本人的技术实在太菜, 所以修改的不好, 请各位原谅。
您喜欢本文吗?即刻订阅"偶爱偶家",精彩文章不再错过!现在就给我们留个话吗?


6 responses to "downthemall!0.9.9.7(2007-03-16)修改版, 解决汉字乱码(firefox扩展)"
这么好的文章怎么没人顶呢?太不厚道了!:mrgreen:
[Reply]
下不了。。。
发给我一个好吗?这是个好东西
[Reply]
还有出 0.9.9.8 版本了,可否在修改一下呢?
期待中。。。
[Reply]
0.9.9.8已经修改完毕了的, 在这里
http://blog.2i2j.com/being-humble-opinion/downthemall0998-modified-2007-05-10-solve-distortion.html
我已经将修改版发给你, 请注意查收
[Reply]
收到了
[Reply]
http://www.6inchboot.com/
UGG boots;cheap UGG;UGG classic
[Reply]