[Opera]对Opera传递链接%l的编码的疑惑
October 14th, 2007 | by vvoody |Opera中无法关联ed2k链接的下载,故写了一个脚本,实现:右击ed2k链接,在弹出的菜单中选择使用MLDonkey下载,使得ed2k链接自动添加到mldonkey的下载列表中。脚本ed2kop.sh如下:
#!/usr/bin/bash
if [ ! -z "$1" ]; then
echo "$1" | nc -q 1 localhost 4000
fi
exit 0
并在~/.opera/menu/vvoodysMenu.ini中的[Link Popup Menu]增加:
Item, “Download via MLDonkey”=Execute program,”/home/vvoody/bin/ed2kop.sh”,”%l”,,
在测试此功能时,发现,只要ed2k链接中包含中文字符,下载添加就失败 ; 而如果链接中仅有英文字符、字母,则可以被mldonkey接受并下载。
带着此疑惑,我修改里脚本第3行:
konsole –noclose -e echo “$1″ | nc -q 1 localhost 4000
目的是在konsole里执行echo后的命令,并且不关闭konsole,好便于查看。结果是传到konsole的ed2k链接中的中文部分出现乱码。
另外,我在bash中直接输入:
$ /home/vvoody/bin/ed2kop.sh “ed2k://包含中文………………………….”
中英文链接皆可。
在Dave Hodgins的提示下,我尝试修改脚本为:
#!/usr/bin/bash
if [ ! -z "$1" ]; then
echo "$1" > test4op.txt
fi
exit 0
分别对中、英文链接做了测试,并用enca工具查看生成文本的编码,两者结果分别是:
中文链接:Unrecognized encoding
英文链接:7bit ASCII encoding characters
有此猜测Opera传递出的%l参数的编码可能是7bit ASCII。因为是7位,故能表示的ASCII字符个数是2^7=128个,当然只能表示英文字符、字母,中文字符显然不可以。
果真如此吗?以向opera.linux新闻组和Opera官方人员报告了,但愿能有结果。
PS:中文ed2k链接生成的文本文件也无法用enconv转换成其他编码格式。
One Response to “[Opera]对Opera传递链接%l的编码的疑惑”
By Crow on Sep 28, 2008
Safari 419 Linux Safari 419 Linux关注。。。
Reply