数字符号参考中的哈希符号

3
我的问题与这个非常相似,但我在那里没有找到答案。
链接中可以得知,HTML通过数字表示支持ISO 8859/1 8位单字节编码的图形字符的显示,例如: &32;代表空格。 &33;代表感叹号。
除非实体名称前缀为#,否则上述内容不会被解析:  代表空格将被解析。 !代表感叹号将被解析。
当ISO Latin 1字符实体不遵循相同的标准时,为什么要在这些字符的实体名称前加上#符号呢?可能可以推断出,HTML解析器会以这种方式编写来处理这些字符,但是了解首先引入这种标准的原因将是很好的。

1
“ISO Latin 1字符实体不遵循相同的标准”是什么意思?另外,顺便提一下,您可以使用整个Unicode范围的数字字符引用。 - Matti Virkkunen
@MattiVirkkunen - 感谢您的回复。ISO Latin 1 Character Entities不需要在实体名称前加上#符号。 - BatScream
1
哦!我没有注意到,因为你在帖子中又加了 #。也许你应该把它们删除,这样人们才能真正看到你在谈论什么。 - Matti Virkkunen
谢谢提供链接。文档中有说明,但我也想知道为什么数字字符不能像没有“#”符号的字符一样处理,这是否有特定原因。 - BatScream
1
HTML 3引起了很多问题,从未被实现,被HTML 3.2取代。最有可能的是,没有使用哈希符号实现数字字符引用导致了向后兼容性问题 - 那些期望&33;显示为&33;的页面突然显示为! - Alohci
显示剩余2条评论
1个回答

1
这些内容的详细处理方式在HTML 5规范的解析部分中有详细说明。你需要阅读 "消耗字符引用" 的链接。
HTML 3从未相关过,即使是HTML 3.2也早已被取代。ISO文件在这个背景下也不相关。
遵循解析算法可能是痛苦的(至少需要一些习惯),但它保证是正确的。

谢谢提供链接,但是链接中的答案和内容仍然没有回答我的问题。 - BatScream

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接