我可以想到几种可能性来解释为什么有时字符串不会被转义:
>或许原始程序员确信在某些地方字符串没有特殊字符(但是,在我看来这将是糟糕的编程习惯;为了防止未来的变化而逃避字符串的成本非常低)
>该字符串已在代码中的那一点进行了转义.你绝对不想两次逃脱一个字符串;用户最终会看到转义序列而不是预期的文本.
>字符串是实际的html本身.你不想逃避HTML;你希望浏览器处理它!
编辑 –
转义的原因是特殊字符,如&和中的文本,那么几乎肯定会在您的示例文本中发生.)但是,因为它是错误的标记,所以某些浏览器将无法正常工作;辅助技术(例如,文本到语音)可能会失败;并且可能存在其他问题.
尽管浏览器尽最大努力从糟糕的标记中恢复,但仍有几种情况会失败.如果您的示例字符串是属性值,则绝对需要转义引号.浏览器无法正确处理以下内容:
一般规则是任何不标记但可能混淆为标记的字符都需要进行转义.
请注意,有几种上下文可以在html文档中显示文本,并且它们具有单独的转义要求.在属性值中,您需要转义引号和&符号(但不是