2010-03-19 47 views
3

我有一個重新發生的問題。我編寫符合標準的符合標準的代碼只是爲了讓它在某些超鏈接URL中與&符號失敗。超鏈接中的&符導致W3C驗證失敗

有沒有人知道這個工作或破解。

感謝

回答

2

你應該URL Encode的超鏈接,所以所有字符都轉換成有效的ASCII格式,不包含任何(X)的HTML實體。

對於C#使用HttpUtility.UrlEncode,對於PHP urlencode,對於JavaScript encodeURI等等...找到正確的方法對於您正在使用的語言應該不那麼難。

+4

'htmlspecialchars'(http://php.net/manual/en/function.htmlspecialchars.php)實際上比'urlencode'好。 – ceejayoz

+4

...我會盡可能地稱它爲必要*。 'urlencode()'是錯誤的方法。 &符號在URL(GET參數分隔符)中具有特殊含義,'urlencode()'將*移除*意味着通過轉義它們。我們不想在URL上下文中編碼&符號。我們想要在HTML上下文中編碼&符號。 'htmlspecialchars()'做到了。 – pinkgothic

5

你讓他們&在這樣的鏈接?

& 
12

我的代碼漂亮標準的代碼只有把它失敗中的一些超鏈接的URL,由於&符號。

轉義的&符號在網址(或其他地方,如果他們不是一個HTML實體的一部分!)「好符合標準的代碼」。

把它們變成&,你可以準確地聲稱做到了這一點。

+0

語法納粹:/替換不符合不 –

+2

+1還不錯知道:未屏蔽的'&'將計爲無效*甚至在JavaScript塊*中,除非它們被封裝在'CDATA'標籤中。 –

+0

謝謝你們的回覆。網址編碼對我來說是新的,我正在研究它。有一個很好的鏈接到上面Ronald提供的W3C URL編碼頁面。 –

-1

CDATA工作,你在JavaScript字符串有&奇蹟..

相關問題