带&lt ;,>的HTML将后者转换为>但不是前者

时间:2017-07-28 22:55:47

标签: html erlang

我试图包含<和>在URL中引用erlang Pid

我的输出:

"You see only the darkness of the cavern.<br><a href=/choices/&lt0.223.0&gt>Venture cautiously.</a><br>"

我将其粘贴到foo.html并打开,我收到

的链接

文件:///%22 /选择/&安培; lt0.207.0%3E /%22

注意&gt;来自%3E,但&amp; lt没有。为什么两个HTML字符都不能保持&lt;和&gt; ?

1 个答案:

答案 0 :(得分:1)

您应该使用分号标记实体的结尾,例如&lt;

否则,名称结束的地方不明确。对于&gt>,它被解释为名称为gt,因为>不是实体名称的有效字符(它不是ASCII字母数字)。但是在&lt0中,0是实体名称中的有效字符。但lt0不是一个已定义的实体。据说有一些逻辑可以在前缀中找到有效的名字,但最好不要完全依赖它。

如果您对HTML实体的标记化方式感兴趣,请参阅此处:https://html.spec.whatwg.org/multipage/parsing.html#character-reference-state