下面的URL的行爲有什麼區別。什麼是&amp用於
我不知道爲什麼&
被插入,它有什麼區別嗎?
www.testurl.com/test?param1=test&current=true
與
www.testurl.com/test?param1=test¤t=true
下面的URL的行爲有什麼區別。什麼是&amp用於
我不知道爲什麼&
被插入,它有什麼區別嗎?
www.testurl.com/test?param1=test&current=true
與
www.testurl.com/test?param1=test¤t=true
&
是HTML爲 「字符引用的開始」。
&
是「和號」的字符引用。
¤t;
不是標準字符引用,所以是錯誤(瀏覽器可能嘗試執行錯誤恢復,但不應該依賴於此)。
如果您對真實字符使用了字符引用(例如™
),那麼它(™)將出現在URL中,而不是您想要的字符串中。
(請注意,根據您使用的HTML版本,你可能要結束與;
一個字符引用,這就是爲什麼&trade=
會™處理。HTML 4允許如果接下來的文字是它被中省略一個非單詞字符(如=
),但某些瀏覽器(Hello Internet Explorer)有此問題)。
HTML不承認&但它會識別&
,因爲它在HTML = &
我看了看這個帖子的人做了:http://www.webmasterworld.com/forum21/8851.htm
我的資料來源:http://htmlhelp.com/tools/validator/problems.html#amp
當包含一個包含和號(「&」)的URL時出現另一個常見錯誤:
這是無效:
A HREF = 「foo.cgi章= 1個&部= 2 &拷貝= 3 &郎=恩?」
說明:
本示例爲「未知實體部分」生成錯誤,因爲
"&"
是ass馬上開始實體參考。瀏覽器經常會從這種錯誤中安全地恢復,但實際問題確實發生在 的某些情況下。在此示例中,許多瀏覽器正確地將& copy = 3 轉換爲©= 3,這可能會導致鏈接失敗。由於⟨是用於左指向尖括號的HTML 實體,因此某些瀏覽器也會將 & lang = en轉換爲<= en。並且一箇舊的瀏覽器甚至發現實體§, 將& section = 2轉換爲§ion= 2。
因此,這裏的目標是在您嘗試驗證您的網站時避免出現問題。因此,在標記中寫入URL時,應該用&
替代您的&符號。
請注意,將
&
替換爲&
;僅在編寫URL爲 HTML時完成,其中"&"
是一個特殊字符(以及「<」和「>」)。當 在純文本電子郵件中或在瀏覽器的 欄中寫入相同的URL時,可以使用"&"
而不是"&"
。使用HTML, 瀏覽器將"&"
轉換爲"&"
,因此Web服務器在請求的查詢字符串中只能看到"&"
而不是"&"
。
希望這有助於:)
一個很好的例子。當¤t
被解析爲到文本節點中時,它被轉換爲¤t
。當將解析爲屬性值時,其被解析爲¤t
。
如果你想在文本節點中使用¤t
,你應該在你的標記中寫入&current
。
底層細節在這裏:在什麼情況下http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference
「行爲」? – 2012-01-31 17:40:22
相關:[我真的需要編碼爲amp?](http://stackoverflow.com/questions/3493405/do-i-really-need-to-encode-as-amp) – cspray 2012-01-31 17:41:00
你可以給一個上下文嗎?這是表單行爲嗎?剛剛顯示在一個頁面上? – jprofitt 2012-01-31 17:41:11