超链接中的 & 符号会导致 W3C 验证失败
我有一个反复出现的问题。我编写了符合标准的良好代码,但由于某些超链接 URL 中的“&”而导致失败。
有谁知道解决这个问题的方法或技巧。
谢谢
I have a reacurring problem. I code nice standards compliant code only to have it fail due to ampersands within some of the hyperlink urls.
Does anyone know of a work around or hack for this.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
URL 中未转义的 & 符号(或其他任何地方,如果它们不是 HTML 实体的一部分!)不是“良好的符合标准的代码”。
把它们变成
&
,你就可以准确地声称已经做到了这一点。Unescaped ampersands in URLs (or anywhere else, if they're not part of an HTML entity!) aren't "nice standards compliant code".
Turn them into
&
and you can accurately claim to have done this.你做的吗?在这样的链接中?
Did you make them & in the links like this?
您应该对超链接进行URL 编码,以便所有字符都转换为有效的 ASCII 格式,并且不包含任何 (X)HTML 实体。
对于 C#,请使用
HttpUtility.UrlEncode
,对于 PHPurlencode
,对于 JavaScript为您所使用的语言找到正确的方法应该不那么难。
You should URL Encode the hyperlinks, so all characters are turned into a valid ASCII format and don't contain any (X)HTML entities.
For C# use
HttpUtility.UrlEncode
, for PHPurlencode
, for JavaScriptencodeURI
, etc... Finding the right method for the language you're using shouldn't be that hard.CDATA 在您拥有 & 设备的地方创造奇迹。在 JavaScript 字符串中..
CDATA works wonders where you have & in javascript strings..