我无法在名称中链接任何带有UTF字符的图像/文件。
离。当我将图像链接到文件时,由于“pi%C5%ka + no%C5%BCnaw.png”,我收到错误
我试图找到一个解决方案,但他似乎是光明的秘密。
这是什么常见的解决方法?
答案 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?
由于我们 使用正斜杠作为其预定的定义含义,表示目录分隔符,因此我们将其保留为/
而不更改它。