什么是(X)HTML中的保留字符?

its*_*_me 3 html xhtml html-encode html-entities

是的,我用Google搜索了,令人惊讶地得到了令人困惑的答案.

一页说< > & "是(X)HTML中唯一的保留字符.毫无疑问,这是有道理的.

这个页面说的 < > & " '是(X)HTML中的保留字符.有点混乱,但没关系,这也是有道理的.

然后是这个页面说明< > & " © ° £和不间断的空格(&nbsp)都是(X)HTML中的保留字符.这毫无意义,几乎增加了我的困惑.

知识渊博的人,实际上知道这些东西的人,可以澄清(X)HTML中保留字符实际上是什么吗?

编辑:此外,如果包装在<pre>标签中代码中的所有保留字符应该被转义?或者只是这三个 - < > &??

ros*_*ori 9

XHTML 1.0规范见http://www.w3.org/TR/2002/REC-xhtml1-20020801/#xhtml:

XHTML 1.0 [...]是三种HTML 4文档类型的重构,作为XML 1.0 [XML]的应用程序.

XML 1.0规范见http://www.w3.org/TR/2008/REC-xml-20081126/#syntax:

字符数据和标记:文本由混合字符数据和标记组成.[...]&符号字符(&)和左尖括号(<)绝不能以字面形式出现,除非用作标记分隔符,或用于注释,处理指令或CDATA部分.如果在其他地方需要它们,它们必须分别使用数字字符引用或字符串" &amp;"和" &lt;" 进行转义.右尖括号(>)可以使用字符串" &gt;" 来表示,并且为了兼容性,&gt;当它出现]]>在内容中的字符串" "中时,必须使用" "或字符引用进行转义,当该字符串未标记结束时CDATA部分.

这意味着在编写XHTML文档的文本部分时,您必须转义&,<和>.

可以逃脱更多,例如ü 为你的变形金刚u.您还可以声明文档以UTF-8编码,并编写字节序列0xc3bc以获得相同的变音符号u.

在编写文档的元素部分(col."tags")时,有不同的规则.你必须处理","和许多关于注释,CDATA等的规则.还有规则可以在元素和属性名称中使用哪些字符.你可以在XML规范中查找它,但是在最后归结为:对于元素和属性名称,使用字母,数字和" - ";不要使用"_".对于属性值,您必须转义&和(取决于引用样式)'或'.

如果您使用众多库中的一个来编写XML/XHTML文档,那么其他人已经处理过这个问题,您只需要告诉库编写文本或元素.所有逃脱都是在后台完成的.


Thi*_*ter 8

只有<& 需要进行转义.内部属性"'(取决于您用于属性值的引用样式)也需要进行转义.

<a href="#" onclick="here you can use ' safely"></a>
<a href="#" onclick='here you can use " safely'></a>
Run Code Online (Sandbox Code Playgroud)

  • 这取决于具体情况.只有`<`和`&`总是"保留". (3认同)