【问题标题】:Link to file with utf-8 character in the name链接到名称中包含 utf-8 字符的文件
【发布时间】:2016-03-02 14:30:04
【问题描述】:

我无法链接名称中带有 UTF 字符的任何图像/文件。

例如。当我将图像链接到文件时,由于“pi%C5%ka+no%C5%BCnaw.png”而出现错误

我试图找到解决方案,但他似乎是光明会的秘密。

常见的解决方法是什么?

【问题讨论】:

    标签: html utf


    【解决方案1】:

    简短的回答是,您必须先对任何 UTF-8 文本进行编码,然后才能将它们用于 URL 的 HTML 代码,不要像以前那样直接使用 UTF-8 文本。

    对于您发布的Piłka nożna.png 示例,它应该是这样的百分比编码:

    <img src="images/ikony/Pi%C5%82ka+no%C5%BCna.png">
    

    详情

    使用encoding 确保浏览器正确找到文件。 HTML 标准应该支持UTF-8 percent encoding 以正确处理 URL 中的 UTF-8 值。

    您可以使用表格手动逐个字符编码,但在线搜索免费在线编码器更容易。

    我刚刚找到并使用了http://www.url-encode-decode.com/

    输入你原来的 UTF-8 文件名:

    Piłka nożna.png
    

    输出编码版本:

    Pi%C5%82ka+no%C5%BCna.png
    

    所以我将它放入您的代码中以获得 HTML 所需的百分比编码 URL:

    <img src="images/ikony/Pi%C5%82ka+no%C5%BCna.png">
    

    但不要只是将所有内容输入并转换到这些在线转换器中。如果您输入了整个 URL images/ikony...,您会注意到正斜杠似乎也得到了百分比编码。我们选择不将/ 编码为%2f 的原因是:

    / 是保留字符。它不等同于 %2f。如果您需要没有定义含义的斜线,则可以使用编码形式。

    来源:Why Does url-encoding the first slash after the domain break the url?

    由于我们正在使用正斜杠来表示其预期的定义含义,即目录分隔符,因此我们将其保留为 / 而无需更改。

    【讨论】:

      猜你喜欢
      • 2018-09-21
      • 2016-04-24
      • 2016-09-03
      • 2012-02-06
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      相关资源
      最近更新 更多