img标签的alt属性是否需要编码?

时间:2009-07-22 14:22:41

标签: html syntax encoding escaping

在html中,img tag's alt attribute内的文字是否需要编码/转义?

非编码示例:

<img src="myimg.png" alt="image description" />

编码示例:

<img src="myimg.png" alt="image%20description" />

4 个答案:

答案 0 :(得分:18)

不,它不需要像URI那样编码。但是,必须对HTML字符进行编码,例如......

<img src="myimg.png" alt="Me &amp; my image" />

答案 1 :(得分:5)

它们不需要URL编码,但它们确实需要像所有XHTML属性那样进行XHTML实体编码。

不正确:

<img src="foo.gif" alt="Ben & Jerry's" />

正确:

<img src="foo.gif" alt="Ben &amp; Jerry's" />

您还需要在值中对双引号进行编码,即使您不必在常规文本中执行此操作。

参考:

答案 2 :(得分:2)

不,不。编码适用于http://en.wikipedia.org/wiki/Dream%20Theater中的网址,而alt字符串不是。

但是,您需要使用entity-encoding>作为&gt;转义,将"转换为&quot;。请注意,这与URI encoding不同,其中特殊字符编码为百分号加上两个十六进制数字。

答案 3 :(得分:0)

您应该使用HTML编码(即“变成”),而不是URL编码。如果您使用的是ASP.NET,则可以使用Server.HtmlEncode实现此目的,或者更好地使用AntiXSS Library on CodePlex中的HtmlAttributeEncode方法。