带德语日期的 Strftime 未正确翻译 "March"

Strftime with German Date not translating "March" properly

我正在使用带有 Zend 的 SocialEngine4。此应用程序的翻译工作正常。但是我们想要一些不同的德语日期格式,所以我们实现了新代码。但它没有正确翻译 "March" 。它显示的是“21. M�rz 2015”日期而不是“21. März 2015”。

我使用以下代码进行此更改

setlocale(LC_TIME, 'de_DE', 'deu_deu');
$date = strftime ("%d. %B %Y",strtotime($date));
setlocale(LC_ALL,NULL);
echo $date;

请告诉我这里有什么问题。

在显示输出的页面中,确保字符集设置为 utf-8

您可以通过将以下行添加到 header。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

通过这样做,应该不需要将德语 Umlaute 转换为实体名称。

然而,如果出于某种奇怪的原因它仍然无法正常工作,您也可以简单地将所有特殊字符转换为其等效的实体名称:

echo htmlentities($date);

像这样肯定能用。