当前位置:  开发笔记 > 编程语言 > 正文

在Unicode感知浏览器时代,HTML中的命名实体是否仍然是必需的?

如何解决《在Unicode感知浏览器时代,HTML中的命名实体是否仍然是必需的?》经验,为你挑选了1个好方法。

我在过去几年中做了很多PHP编程,让我讨厌的一件事就是对Unicode和多字节字符串的弱支持(当然,原则上没有).例如,"htmlentities"似乎是PHP世界中一个常用的函数,我发现当你努力保持每个字符串可以本地化时,它只会在你的数据库中存储UTF-8,只提供UTF -8 webpages等突然间,在你的数据库和浏览器之间的某个地方,这个绝望的天真函数假装每个字节都是一个字符并且混乱了一切.

我只是喜欢,只是倾倒这种功能,他们似乎完全是多余的.这几天仍然需要写'ä' 代替'?至少我的Firefox似乎非常高兴能够显示最奇怪的亚洲字形,只要它们以适当的编码方式提供.

更新:更准确:除了显示HTML标记之外,其他任何东西都是必需的实体(如"<"表示"<")

更新2:

@Konrad:你是说,不,不需要命名实体吗?

@Ross:但是在输入时清理用户输入是不是更好,以保持我的输出逻辑免受这些问题的影响?(当然,假设可以对输入进行可靠的消毒 - 但是,如果不是,那么它可以输出吗?)



1> Sören Kuklau..:

不鼓励application/xhtml+xml使用"真实"XHTML中的命名实体(即,使用,而不是更常用的text/html兼容模式).除了在XML本身(定义五<,>,&,",'),他们会都在你使用特定的DOCTYPE的DTD来定义.这意味着您的浏览器必须明确支持DocType,这远非给定的.另一方面,编号实体显然只需要查找表来获得正确的Unicode字符.

至于你是否需要实体:你几乎可以期待任何现代浏览器都支持UTF-8.因此,只要您能保证数据库,标记和Web服务器都同意服务,就抛弃实体.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有