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