首页 > 解决方案 > 链接带有重音符号的文件夹中的 .avi 文件时出错

问题描述

我有一个 .avi 文件,它位于我服务器的一个文件夹中。此文件夹的名称带有重音符号。问题是,当我将该文件放在标签中时,它会显示一个 txt 文件(我认为是 avi 文件编码),这显然是一个错误。它只发生在使用 https 协议的 Internet Explorer(至少版本 11)中。

mp4 文件、位于“非重音文件夹”中的 avi 文件、http 协议、直接将地址粘贴到浏览器、Chrome 或 Firefox 时都不会发生这种情况。

举例说明我想说的话:

<a href="https://myserver.com/myAccentédFolder/myVid.avi" target="_blank">ERROR</a>
<a href="https://myserver.com/myNonAccentedFolder/myVid.avi" target="_blank">OK 1</a>
<a href="https://myserver.com/myAccentédFolder/myVid.mp4" target="_blank">OK 2</a>
<a href="http://myserver.com/myAccentédFolder/myVid.avi" target="_blank">OK 3</a>

所以我知道如何“修复”它……但是如果我需要所有的 casuistries 怎么办?- 使用 IE 11 - 文件为 .avi - 文件夹带有重音符号 - 链接中的地址 - https 协议的地址

%$&$% 发生了什么?

标签: htmlhttpsinternet-explorer-11mime-typesurlencode

解决方案


好的做法是不要在链接中使用重音符号,如果必须,这些字符应该作为 ASCII 代码字符串给出,以保持与浏览器和爬虫的兼容性。否则,您可以预期它不会总是按您的意愿工作。

在 HTML5 标准的 UTF-8 中,%C3%A9等同于é,因此您的锚标记应如下所示:

<a href="http://myserver.com/myAccent%C3%A9dFolder/myVid.avi" target="_blank">OK 3</a>

请注意,浏览器会将地址栏中的%C3%A9更改为é(如果浏览器支持)

您可以在这里找到许多非标准字符的等价物: https ://www.w3schools.com/tags/ref_urlencode.asp


推荐阅读