&符号旁边的哪些其他字符应该在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解析文档中的链接发生这种情况.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些