【发布时间】:2014-10-21 05:21:58
【问题描述】:
我花了几个小时试图弄清楚为什么 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
【问题讨论】:
-
你确定源文档真的是用 UTF-8 编码的吗? Safari 会在您的状态栏中呈现链接的 URL 编码形式,这本身并没有错,它本身也不意味着该链接是“不可点击的”。看起来 Safari 认为锚点包含一个带有(十六进制)代码 C3 的字符。 Unicode 字符 U+00C3 是带有波浪号的大写“A”,而您似乎正在寻找的字符是 U+00E6。在你责怪 Safari 之前,你应该检查你的页面是否在其他浏览器中工作。
-
@JohnBollinger,所有其他浏览器似乎都在工作。这是 Safari 的一贯问题,因此我也尝试了所有的 iOS 设备。我使用 TextMate 编辑我的文档,并且一如既往地将其设置为 UTF-8
标签: url encoding utf-8 safari anchor