2010-11-16 71 views
1

我應該編碼url中包含的字符嗎?必須在HTML鏈接中編碼字符?

例子:

<a href="http://google.com?topicId=1&pageId=1">Some link using &</a> 

<a href="http://google.com?topicId=1&amp;pageId=1">Some link using &amp;</a> 

回答

1

是的。

在HTML(包括XHTML和HTML5,因爲據我所知),所有屬性值和標籤內容should be encoded:

作者應該也使用 「&放大器;」因爲在CDATA屬性值中允許字符引用。

-1

取決於如何你的文件正在擔任了鑑定。

對於XHTML,是的,它是必需的。

對於HTML,不,它是不正確的。

+3

這不是正確的。在HTML中,如果後跟一個字母數字字符串,那麼必須編碼一個'&',這是一個有效的實體引用。例如,'..?x = 0&copy = 1'將導致'..?x = 0©= 1'。作爲一個經驗法則,你應該編碼'&'以避免這種情況。 – RoToRa 2010-11-16 10:58:03

-1

在網絡編程中有兩種不同的編碼方式需要用於不同的目的,並且很容易混淆。

要顯示爲HTML的文本中的特殊字符需要編碼爲HTML實體。這是特別的字符,如'<',它們是HTML標記的一部分,但如果對使用的字符編碼有任何疑問,它也可能對其他特殊字符有用。

URL中的特殊字符需要進行URL編碼(由%nn代碼取代)。

將HTML實體放到URL中,如果將它作爲HTML文本接受,則不會造成任何傷害;但如果它是程序指令的一部分(例如用於在CGI查詢字符串中分隔參數的&),則不應對其進行編碼。