【发布时间】:2016-03-02 14:30:04
【问题描述】:
我无法链接名称中带有 UTF 字符的任何图像/文件。
例如。当我将图像链接到文件时,由于“pi%C5%ka+no%C5%BCnaw.png”而出现错误
我试图找到解决方案,但他似乎是光明会的秘密。
常见的解决方法是什么?
【问题讨论】:
我无法链接名称中带有 UTF 字符的任何图像/文件。
例如。当我将图像链接到文件时,由于“pi%C5%ka+no%C5%BCnaw.png”而出现错误
我试图找到解决方案,但他似乎是光明会的秘密。
常见的解决方法是什么?
【问题讨论】:
简短的回答是,您必须先对任何 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?
由于我们正在使用正斜杠来表示其预期的定义含义,即目录分隔符,因此我们将其保留为 / 而无需更改。
【讨论】: