微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

&符号旁边的哪些其他字符应该在HTML href / src属性中编码?

&符号是否应该在 HTML属性中编码的唯一字符?

众所周知,这不会通过验证:

<a href="http://domain.com/search?q=whatever&lang=en"></a>

因为&符号应该是& amp; amp; amp; amp; amp;这是验证失败的direct link.

应该编码的This guy lists a bunch of characters,但他错了.如果您对http://中的第一个“/”进行编码,则href将无效.

在ASP.NET中,是否已经构建了一个帮助方法来处理这个问题?像Server.UrlEncode和HtmlEncode这样的东西显然不起作用 – 这些用于不同的目的.

我可以构建我自己的简单扩展方法(如.ToAttributeView()),它可以进行简单的字符串替换.

解决方法

除了值的标准URI编码之外,&是唯一与HTML实体相关的字符,您必须担心它只是因为这是开始每个HTML实体的字符.以下面的URL为例:
http://query.com/?q=foo&lt=bar&gt=baz

即使没有尾随的分号,因为& lt;是<的实体和& gt;是>的实体,某些旧版浏览器会将此网址翻译为:

http://query.com/?q=foo<=bar>=baz

所以你需要指定&作为& amp;防止HTML解析文档中的链接发生这种情况.

原文地址:https://www.jb51.cc/html/224049.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐