測試 HTML parser 時,某段 HTML 一直被標記有誤,花了不少時間才找到原因。
在 W3 HTML spec 中有註明,「&」符號剛好用來作為 HTML entity 的起始字元,遇到該字元需要 escape。
舉例來說,有個超連結帶有參數:
<a href="search.php?val=keyword&category=3">search</a>
URL 中的「&」符號應該改為「&」:
<a href="search.php?val=keyword&category=3">search</a>
現今瀏覽器都很聰明,會自動辨識並修正人為錯誤,但既然有規範,還是注意一下。
為了找到 W3 HTML spec 中與這個問題有關的章節,實在吃了不少苦頭。後來發現 Firefox addon – Html Validator 可以偵測錯誤,並告知可以參考的 W3 spec 章節: