2014-10-20 41 views
0

我花了幾個小時試圖弄清楚爲什麼UTF-8字符不能與錨一起工作,我基本上沒有想法。錨中的UTF-8在Safari中不起作用

繼已被添加到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 
+0

您確定源文檔是真正用UTF-8編碼的嗎? Safari會在狀態欄中呈現鏈接的URL編碼形式,這本質上不是錯誤的,也不表示鏈接是「不可點擊的」。它看起來似乎Safari認爲錨點包含一個帶有(十六進制)代碼C3的字符。 Unicode字符U + 00C3的大寫字母是'A',而您似乎在尋找的字符是U + 00E6。在指責Safari之前,您應該檢查您的網頁是否可以在其他瀏覽器中使用。 – 2014-10-20 18:30:56

+0

@JohnBollinger,所有其他瀏覽器似乎正在工作。它與Safari一致的問題,因此我嘗試了所有的iOS設備。我使用TextMate編輯我的文檔,並且一直將其設置爲UTF-8 – JavaCake 2014-10-20 18:39:10

回答

0

我的猜測是,你把網址使用UTF-8字符的文件中是這樣的:

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

不幸的是,這不是一個有效的URL。即使某些瀏覽器支持它們,URL中的非ASCII字符也不符合RFC標準。你必須百分號逃脫這樣的UTF-8編碼字節序列:

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

這是單調乏味的,如果你手動編輯HTML文件,但如果你想成爲嚴格符合標準的它是唯一的途徑。

+0

我試過了,但它似乎不起作用? – JavaCake 2014-10-24 18:03:40