5

将文件保存为 ISO-8859-1 并使用命令时

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

返回将只是“测试:”。

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

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

如果您不设置字符集,PHP5.4 中是否还有其他无法正常工作的函数?

4

2 回答 2

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

于 2012-08-01T12:31:44.297 回答
0

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

于 2013-05-19T13:11:09.447 回答