锚中的UTF-8在Safari中不起作用

时间:2014-10-20 18:20:27

标签: url encoding utf-8 safari anchor

我花了几个小时试图找出为什么UTF-8字符不与锚点合作,我基本上没有想法。

以下内容已添加到HTML头:<meta charset="UTF-8">

卷曲显示文档显然是UTF-8:

HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Mon, 20 Oct 2014 18:13:28 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive

当我查看Safari状态栏中链接的结果时,它呈现为:

http://localhost:80/#Forv%C3rres

但显然无法点击。

如果我在地址中正确键入它,它会发现锚点没有任何问题:

http://localhost:80/#Forværres

1 个答案:

答案 0 :(得分:0)

我的猜测是你在文档中放置了带有UTF-8字符的URL,如下所示:

http://localhost:80/#Forværres

不幸的是,这不是有效的网址。即使某些浏览器支持URL,URL中的非ASCII字符也不符合RFC。你必须像这样转义编码的UTF-8字节序列:

http://localhost:80/#Forv%C3%A6rres

如果您手动编辑HTML文件,这是单调乏味的,但如果您想严格遵守标准,这是唯一的方法。