阅读:18516回复:26
downthemall!0.9.9.8修改版(2007-05-10), 解决汉字乱码(firefox扩展)
转自blog http://blog.2i2j.com/?p=186
在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。 本人的技术实在太菜, 所以修改的不好, 请各位原谅。 |
|
|
1楼#
发布于:2007-03-17 17:23
下来试试 <!-- s;) --><img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" /><!-- s;) -->
ED: 很好用,谢谢楼主 |
|
2楼#
发布于:2007-03-17 17:23
2.0.5,下载,重命名有问题,下不了东东
|
|
3楼#
发布于:2007-03-17 17:23
我一直用downloadhelper,不知道这个扩展好用吗?
|
|
4楼#
发布于:2007-03-17 17:23
下了,一试
|
|
5楼#
发布于:2007-03-17 17:23
给楼主提示一下
运行 %appdata% 这样可以快速定位到application data文件夹 |
|
|
6楼#
发布于:2007-03-17 17:23
楼上辛苦,这个好用。
|
|
|
7楼#
发布于:2007-03-17 17:23
附件由于太大, 无法上传, 请去我的博客下载!
本文转自博客 http://blog.2i2j.com 这几天firefox更新了一些扩展, 其中包括我downthemall!, 所以趁着今天稍微有些空闲, 把这个插件的0.9.9.8版本修改了一下, 以解决非英文字符乱码的问题, 我测试的都是汉字(中文), 包括GB2312/GBK/GB18030/UTF-8, 这个情况下都不会出错了, 其他的BIG5之类的都未经测试, 如果有人发现bug请提供反馈, 谢谢! 我把修改版放到这里提供下载: http://blog.2i2j.com/downthemall.xpi 对于已经安装downthemall!0.9.9.8版本的朋友, 也可以采用直接替换dta.jar的方式修改, 免去再次安装的麻烦。具体替换方法见这里 《 firefox中扩展的替换方式 》 http://blog.2i2j.com/dta.jar 该修改版的具体修改方法和经过可以参见下列文章: 《 downthemall!0.9.9.7(modified 2007-03-24), 修改一处bug 》 《 downthemall!0.9.9.7(2007-03-24修改版), 彻底解决乱码 》 《 downthemall!0.9.9.7(2007-03-21)修改版,解决前面修改中出现的bug 》 《 downthemall!0.9.9.7(2007-03-16)修改版, 解决汉字乱码(firefox扩展) 》 |
|
|
8楼#
发布于:2007-03-17 17:23
还是我的问题, ftp上文件错了. 我已经改好了. 现在ok了
|
|
|
9楼#
发布于:2007-03-17 17:23
|
|
|
10楼#
发布于:2007-03-17 17:23
是扩展体积太大,呵呵。一般的扩展论坛附件大小足够了。
|
|
|
11楼#
发布于:2007-03-17 17:23
|
|
|
12楼#
发布于:2007-03-17 17:23
楼主,好像上面第一个链接
http://blog.2i2j.com/downthemal.xpi有误,下不到,第二个没问题。 |
|
|
13楼#
发布于:2007-03-17 17:23
由于网络问题, 今天发现http://blog.2i2j.com上更新的downthemall有误, 没有更新成功, 请以前下载的用户重新下载, 今天我又改进了一部分代码, 虽然关系不大, 但可以使得运行的更加稳定.
具体地址是 http://blog.2i2j.com/downthemall.xpi http://blog.2i2j.com/dta.jar 同时建议这个论坛能够增加附件的容量. 目前的附件容量实在太小了. |
|
|
14楼#
发布于:2007-03-17 17:23
有意思的东东,下一个试试。谢谢楼主了。
|
|
|
上一页
下一页