最近采集了不少软件,采集成一个软件列表页,然后用迅雷进行批量全部下载,结果有些列表页可以用右键选择用迅雷下载全部链接,有些选择过后就出现脚本错误。
当前页的脚本发生错误
行:34
Char:4
错误:参数无效
代码:0
URL:file:///C:/Program%20Files/Thunder%20Network/Thunder/Program/getallurl.htm
百思不得其解。
将这个页面发给技术支持,在他电脑上试则能正常下载。
我以为是我的迅雷版本问题,将迅雷升级为最新版,不行,降级为低版本,也不行。
只能用网页编辑工具,几十行几十行地下载,下到有问题的地方再手动添加进迅雷。
后来发现文件名链接有特殊字符如“α、β、%”百分号这类的都不能下载。
下载前就将这些文件名链接删除掉,然后批量下载。
知道是这个问题后,就找原因。
终于发现是IE的问题,不能识别含有特殊字符的链接。
如要修改文件名的话刚看这里:批量去除重命名文件名中的逗号或者-号
原来是IE为了安全起见,屏蔽了这些特殊字符的链接。
微软support文章参考:无法导入到收藏夹到 Internet Explorer URL 字符串包含一个百分号时
症状收藏夹和链接 组策略设置用于添加或导入到 Windows Internet Explorer 的收藏夹。 但是,应用该设置之后,链接不会出现在 Internet…收藏夹和链接 组策略设置用于添加或导入到 Windows Internet Explorer 的收藏夹。 但是,应用该设置之后,链接不会出现在 Internet Explorer 收藏夹 选项卡上。
导入包含一个百分号 (%),在 URL 字符串中的链接时,会发生此问题。
回到顶端
解决方案要解决此问题,请后 URL 字符串中每个百分比符号中添加其他的百分比符号。 是例如如果 URL 是 http://www.microsoft.com/aaaa%…要解决此问题,请后 URL 字符串中每个百分比符号中添加其他的百分比符号。 是例如如果 URL 是 http://www.microsoft.com/aaaa%bbbb%widgets ,将 URL 更改为 http://www.microsoft.com/aaaa%%bbbb%%widgets 。在尝试使用 收藏夹和链接 组策略设置导入到收藏夹之前,可修改 Internet 快捷方式文件的 URL。 或者,可以在导入到收藏夹后还修改 收藏夹和链接 组策略设置中的 URL。 要这样做,请按下列步骤操作:
单击 开始 ,单击 运行 ,键入 gpedit.msc ,然后按 ENTER 键 。
在 用户配置 ,下展开 Windows 设置 ,展开 Internet Explorer 维护 ,然后单击 URL 。
双击 收藏夹和链接 。
在 收藏夹和链接 对话框中,双击单击包含百分比符号的 URL。
将百分比的符号添加到在 URL 字符串中每个现有百分比符号,然后单击 确定 。请注意 重复步骤 4 和 5 为每个 URL 字符串包含一个百分号。
单击 确定 。
单击 开始 ,单击 运行 ,键入 gpupdate/force ,然后按 ENTER 键 。
回到顶端
状态Microsoft 已确认这是在"适用于"一节中列出的 Microsoft 产品的已知的代码缺陷。Microsoft 已确认这是在"适用于"一节中列出的 Microsoft 产品的已知的代码缺陷。
回到顶端——————————————————————————–
这篇文章中的信息适用于:
Microsoft Internet Explorer 6.0
Windows Internet Explorer 7
Windows Internet Explorer 8
回到顶端
另一篇文章:BUG: Internet Explorer 6 不能正确处理百分比字符 (%) OBJECT 标记中的 URL 中
症状当宿主于中 Microsoft.NET Windows 如果 URL 包含一个百分号的字符 ( %) 窗体控件无法正确加载 Internet 资源管理器时…当宿主于中 Microsoft.NET Windows 如果 URL 包含一个百分号的字符 ( %) 窗体控件无法正确加载 Internet 资源管理器时
回到顶端
原因百分号的字符 ( %) 被视为不安全,因为用于其他字符的编码。 必须在的 URL 中编码不安全的所有字符 (是例如 % 被都编码为 %25 )。 是例如移动到使…百分号的字符 ( %) 被视为不安全,因为用于其他字符的编码。 必须在的 URL 中编码不安全的所有字符 (是例如 % 被都编码为 %25 )。是例如移动到使用下列 URL 的页面时, Internet Explorer 将解码 %2545 到 %45,并成功查找 HTML 页:
http://webserver/%2545/iehosting.html
但是,.NET WinForm 控件的 Web 服务器响应以下列方式中:
Internet Explorer 时请求.NET Web 服务器 WinForm 控件以下 URL 是使用 (注意 %45):
URL http://webserver/%45/ieControl.dll
Web 服务器解码此 URL,按以下顺序:
%45 转换 0x45
0x45 是 69
%45 转换为字符 E
结果,Web 服务器查找该控件的最后一个位置是 http://webserver/E/ieControl.dll (注意的 E 而不是 %45)。因为 Internet Explorer 找不到该控件,它不会加载。
回到顶端
状态Microsoft 已经确认这是 Microsoft 中的错误在本文开头列出的产品。Microsoft 已经确认这是 Microsoft 中的错误在本文开头列出的产品。
回到顶端
更多信息当 Internet Explorer 请求 ieControl.dll 的 Web 服务器时,它用于发送 URL,不解码 %2545 到 %45。 该服务器预…当 Internet Explorer 请求 ieControl.dll 的 Web 服务器时,它用于发送 URL,不解码 %2545 到 %45。 该服务器预计不指具有已被解码的编码的字符串。这将是 OBJECT 标记中的一个问题,并防止 OBJECT 标记中的托管的代码使用这种情况。 基本上,将从一个 URL 到另一个,请求重定向就是,重定向此 URL:
http://webserver/%45/ieControl.dll
到此 URL:
http://webserver/E/ieControl.dll
回到顶端
重现该问题的步骤
创建 Windows 控件库项目。
编译该的控件,然后命名 ieControl.dll。
创建一个 HTML 页和然后放在 Internet Explorer 中带有 OBJECT 标记的 Windows 窗体控件
This is a WinForm control, hosted in Internet Explorer demonstration:
将 HTML 页另存为 Iehosting.html 中。
创建一个名为 %45 wwwroot 下您的站点的目录服务器。
将 Iehosting.html 和 IeControl.dll 文件复制到该目录中。
启动 Internet Explorer,移到在 http://webserver/%2545/Iehosting.html,页并验证.dll 未正确加载。
回到顶端
参考URL 编码的了解更多,请访问下列网络使用中文 (请求的注释 1738) 网站: 统一资源定位器http://www.rfc-editor.org/rfc/rf…URL 编码的了解更多,请访问下列网络使用中文 (请求的注释 1738) 网站:
统一资源定位器
http://www.rfc-editor.org/rfc/rfc1738.txt (http://www.rfc-editor.org/rfc/rfc1738.txt)
回到顶端——————————————————————————–
这篇文章中的信息适用于:
Microsoft Visual Studio .NET 2002 专业版
Microsoft Internet Explorer (Programming) 6 (SP1)
这是IE的BUG,后来安装了firefox,再重新安装迅雷,全部下载就没出过错了。
评论前必须登录!
注册