Link 文件名中包含 utf-8 字符
Link to file with utf-8 character in the name
我不能 link 任何 images/files 名称中包含 UTF 字符。
例如。当我 link 图片到文件时,由于 "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 to ensure the browser correctly finds the file. HTML standards are supposed to support UTF-8 percent encoding 正确处理 URL 中的 UTF-8 值。
您可以使用 table 逐字符手动编码,但在线搜索免费的在线编码器更容易。
我刚刚找到并使用了 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
的原因是:
The / is a reserved character. It's not equivalent to %2f. If you need the slash without it's defined meaning, you'd use the encoded form.
来源:Why Does url-encoding the first slash after the domain break the url?
由于我们使用正斜杠来表示其预期的定义含义,以表示目录分隔符,因此我们将其保留为/
而不更改。
我不能 link 任何 images/files 名称中包含 UTF 字符。
例如。当我 link 图片到文件时,由于 "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 to ensure the browser correctly finds the file. HTML standards are supposed to support UTF-8 percent encoding 正确处理 URL 中的 UTF-8 值。
您可以使用 table 逐字符手动编码,但在线搜索免费的在线编码器更容易。
我刚刚找到并使用了 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
的原因是:
The / is a reserved character. It's not equivalent to %2f. If you need the slash without it's defined meaning, you'd use the encoded form.
来源:Why Does url-encoding the first slash after the domain break the url?
由于我们使用正斜杠来表示其预期的定义含义,以表示目录分隔符,因此我们将其保留为/
而不更改。