在 Unicode 感知浏览器的时代,HTML 中的命名实体是否仍然必要?
在过去的几年里,我做了很多PHP编程,有一件事让我很烦恼,那就是对Unicode和多字节字符串的支持很弱(可以肯定的是,本地没有)。例如,“htmlentities”似乎是PHP世界中一个经常使用的函数,我发现当你努力保持每个字符串的可本地化性,只将UTF-8存储在数据库中,只提供UTF-8网页等时,它绝对令人讨厌。突然之间,在你的数据库和浏览器之间的某个地方,有一个无可救药的天真函数,假装每个字节都是一个字符,把一切都搞砸了。
我只想转储这种功能,它们似乎完全是多余的。现在是否仍然需要写“ä”而不是“ä”?至少我的Firefox似乎非常乐意显示即使是最奇怪的亚洲字形,只要它们以正确的编码提供。
更新:更准确地说:除了显示 HTML 标记之外,命名实体对于其他任何操作都是必需的吗(如“<”中的“<”)
更新 2:
@Konrad:你是说,不,不需要命名实体吗?
@Ross:但是,在输入用户输入时对其进行清理,以使我的输出逻辑免受此类问题的影响,不是更好吗?(当然,假设对输入进行可靠的消毒是可能的 - 但是,如果不是,它可以在输出上吗?