为htmlentities()定义默认字符集

5
我想知道是否有任何方法来定义 htmlentities() 的默认编码。我正在进行一个大项目,使用了许多 htmlentities 调用,想知道是否有一种简单的方法可以将其从 ISO-8859-1 设置为 UTF-8 作为默认字符编码,使用一些简单的东西,比如 ini_set()。或者可能需要使用一个单独的 namespace 声明。
如果这样做不行,我也不反对重命名和覆盖 htmlentities 函数,以始终使用 Unicode,但不愿意安装像 PECL apd 这样奇怪的东西(对我来说)。

1
为什么不直接使用htmlspecialchars?htmlentities转换的内容比HTML需要的要多得多,而且由于htmlspecialchars和UTF-8的工作方式,它转换的所有字符都不会出现在多字节UTF-8字符的中间,这意味着严格来说,它假定ISO-8859-1也没有关系。 - Michael Madsen
2个回答

8
由于手册页没有关于更改默认字符集的说明,我不认为有办法去做这件事;而且我也不记得我曾经见过有关此方面的内容。
我也不会像使用apd那样的方法--相反,我可能会:
1. 创建自己的函数,使用正确的参数调用htmlentities 2. 将每个htmlentities的调用替换为对我的新函数的调用(使用几行脚本可能可以自动完成此操作)

0

@Pascal MARTIN的解决方案绝对正确,您也可以使用{{link1:utf8-encode}}将ISO-8859-1转换为UTF-8。

而{{link2:utf8_decode}}则可将UTF-8转换为ISO-8859-1。


问题不在于字符串所使用的字符集,而是htmlentities处理它的方式。 - amphetamachine

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