PHP 5.4德语变音符号/变音符号不再起作用

时间:2014-03-15 20:01:25

标签: php diacritics

我已将我的网站升级到PHP 5.4并且突然将德语变音符号/变音符号升级为

ö

不再工作了。它们只显示为ö而不是ö

当我回到PHP 5.3时,它再次起作用。

我正在准备这样的文字:

$thetext = (html_entity_decode(htmlspecialchars_decode($row[kurztext], ENT_QUOTES)));

1 个答案:

答案 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的默认值)。