Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

用python解决amule中文乱码的问题

| Comments

Linux下的amule并不会对链接做编码转换,也就是说,比如下面这样的链接地址:

ed2k://|file|%E7%94%9F%E6%B4%BB%E5%A4%A7%E7%88%86%E7%82%B8.The.Big.Bang.Theory.S02E15.Chi_Eng.HR-HDTV.AC3.960X528.x264-YYeTs%E4%BA%BA%E4%BA%BA%E5%BD%B1%E8%A7%86.avi|230043648|e49a10d7052b5dfee4aa8b3336b76301|h=qkhaltxhuygwphznp2holcvdarxki3e6|/

直接交给amule下载时,给出的文件名就会变成下面这个样子:

生活大爆炸.The.Big.Bang.Theory.S02E04.Chi_Eng.HR-HDTV.AC3.960X528.x264-YYeTs人人影视.avi

所以需要我们自己先把链接转变成“正确”的编码,然后交给amule,还是上面那个链接,转换过来就是:

ed2k://|file|生活大爆炸.The.Big.Bang.Theory.S02E15.Chi\_Eng.HR-HDTV.AC3.960X528.x264-YYeTs人人影视.avi|230043648|e49a10d7052b5dfee4aa8b3336b76301|h=qkhaltxhuygwphznp2holcvdarxki3e6|

这样交给amule就会获得正确的文件名。 如果你一次性获得大量的这样链接,我们可以简单的写个脚本来转换,这里用Python演示,代码如下:

File /Users/wgzhao/Sites/blog.wgzhao.com/source/downloads/code/encoding could not be found

上面的代码针对需求做了一些改进,那就是你只需要提供带有ed2k链接的页面,脚本会自动分析并转码,这样,你只需要复制屏幕上的输出,然后粘贴到amule即可。 即便是这样,有人可能觉得还是麻烦,如果在复制的时候,同时就完成了转码,那不更好吗?恩,人的欲望是无止境的,要做到这点,就得监控粘贴板了。

学习Python时间不长,对X不太了解,google了一番,找到了一个样例代码,照葫芦画瓢,变成了下面的代码:

File /Users/wgzhao/Sites/blog.wgzhao.com/source/downloads/code/ed2k_monitor.py could not be found

运行该脚本到后台,尝试复制ed2k链接,然后粘贴看看,是不是改变了?

Comments