gpt4 book ai didi

html - html 空间显示为 %2520 而不是 %20

转载 作者:技术小花猫 更新时间:2023-10-29 11:28:17 25 4
gpt4 key购买 nike

将文件名传递给 firefox 浏览器会导致它用 %2520 而不是 %20 替换空格。

我在名为 myhtml.html 的文件中有以下 HTML:

<img src="C:\Documents and Settings\screenshots\Image01.png"/>

当我将 myhtml.html 加载到 firefox 时,图像显示为损坏的图像。所以我右键单击链接查看图片,它显示了这个修改后的 URL:

file:///c:/Documents%2520and%2520Settings/screenshots/Image01.png
^
^-----Firefox changed my space to %2520.

什么鬼?它将我的空间转换为 %2520。它不应该将其转换为 %20 吗?

如何更改此 HTML 文件以便浏览器可以找到我的图像?这是怎么回事?

最佳答案

关于 %2520 是什么的一些解释:

如您自己所述,公共(public)空格字符编码为 %20% 字符编码为 %25

你得到 %2520 的方式是当你的 url 中已经有一个 %20,然后再次进行 urlencoded,这会转换 %20%2520

您(或您可能使用的任何框架)是否对字符进行双重编码?

编辑:对此进行一些扩展,尤其是对于 LOCAL 链接。假设您要链接到资源 C:\my path\my file.html:

  • 如果您只提供一个本地文件路径,浏览器应该对所有给定的字符进行编码和保护(在上面,您应该给它添加空格,因为 % 是一个有效的文件名字符,因此它将被编码)在转换为正确的 URL 时(见下一点)。
  • 如果您提供一个带有file:// 协议(protocol)的URL,您基本上是在声明您已经采取了所有的预防措施并对需要编码的内容进行了编码,其余的应该被视为特殊字符。在上面的示例中,您应该提供 file:///c:/my%20path/my%20file.html。除了修复斜杠,客户不应在此处对字符进行编码。

注意事项:

  • 斜杠方向 - 正斜杠 / 用于 URL,反斜杠 \ 用于 Windows 路径,但大多数客户端都可以通过将它们转换为正确的正斜杠来使用它们.
  • 此外,协议(protocol)名称后有 3 个斜杠,因为您是指当前机器而不是远程主机(完整的未缩写路径为 file://localhost/c:/my% 20path/my%file.html ),但大多数客户端同样可以在没有主机部分(即只有两个斜杠)的情况下工作,假设您指的是本地机器并添加第三个斜杠。

关于html - html 空间显示为 %2520 而不是 %20,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16084935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com