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