链接到名称中带有utf-8字符的文件

时间:2016-03-02 14:30:05

标签: html utf

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

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

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

这是什么常见的解决方法?

1 个答案:

答案 0 :(得分:0)

简短的回答是,您必须对任何UTF-8文本进行编码,然后才能在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">

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

  

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

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

由于我们 使用正斜杠作为其预定的定义含义,表示目录分隔符,因此我们将其保留为/而不更改它。