考虑到函数的哪个字符集从PHP5.2变为PHP5.4

时间:2012-08-01 10:26:52

标签: php character-encoding htmlspecialchars

将文件保存在ISO-8859-1中并使用命令

echo "test: ".htmlspecialchars("äöü");

回报只是“测试:”。

这是因为htmlspecialchars的标准字符集在PHP5.4中更改为UTF-8。您需要明确设置charset:

echo "test: ".htmlspecialchars("äöü", ENT_COMPAT | ENT_HTML401, 'ISO-8859-1');

如果你没有设置字符集,PHP5.4中是否有其他功能不再正常工作?

2 个答案:

答案 0 :(得分:1)

htmlentities似乎是另一个被更改的功能:http://de3.php.net/manual/de/migration54.other.php

PHP 5.2-> 5.3的迁移指南不再提供更改默认字符集的函数:http://de3.php.net/manual/de/migration53.php

所以可能只有htmlspecialchars()htmlentities

无论如何,我认为这两者肯定会进入“向后不兼容的变化” - 列表http://de3.php.net/manual/de/migration54.incompatible.php

答案 1 :(得分:0)

对于latin1中的遗留项目,我们根据以下说明将htmlspecialchars替换为自制函数htmlXspecialchars:http://ufive.unibe.ch/?c=php54entitiesfix&q=&l=e