我已将我的网站升级到PHP 5.4并且突然将德语变音符号/变音符号升级为
ö
不再工作了。它们只显示为ö
而不是ö
。
当我回到PHP 5.3时,它再次起作用。
我正在准备这样的文字:
$thetext = (html_entity_decode(htmlspecialchars_decode($row[kurztext], ENT_QUOTES)));
答案 0 :(得分:1)
从PHP 5.4开始,htmlentities()
和html_entity_decode()
默认为'UTF-8',可能您的数据不是(如果它来自数据库)。
有关详细信息,请参阅此SO answer。
注意:在该线程中,它只是反过来,因此您需要将数据转换为 UTF-8或告诉函数将数据解释为非UTF-8)。
$thetext = (html_entity_decode(htmlspecialchars_decode($row[kurztext], ENT_QUOTES), ENT_COMPAT | ENT_HTML401, "ISO-8859-1"));
此外,我认为您现在应该可以在没有htmlspecialchars_decode()
的情况下工作,因为html_entity_decode()
也可以通过ENT_QUOTES
来处理引号。只需将其他标志添加到其参数中(我使用了当前使用的两个标志,因为它们是PHP的默认值)。