ich habe hier eine sehr sehr (sehr) alte Installation, die aus historischen Gründen, an die sich niemand mehr erinnern kann, in der Datenbank ISO-8859-1 verwendet. Dementsprechend ist das Blog selber auch auf ISO eingestellt und die Umlaute in den Einträgen kommen auch ganz hervorragend und wie gewollt raus.
Nach dem Update auf s9y 2.5.0 und PHP 8.2 spuckt die Datums-Funktion jetzt allerdings am Kopf jedes Artikels (und auch in der Archiv-Übersicht) ein "März" statt "März" aus, sie versucht also offenbar UTF-8 zu generieren, was zum Rest der Seite nicht passt. Nach einigem Hin und Her habe ich die Funktion serendipity_smarty_formatTime() in der /include/functions_smarty.inc.php ausgemacht, die diesen String entsprechend formatieren soll und habe der einfach ein mb_convert_encoding() am Ende verpasst, ohne auf meinen Arzt oder Apotheker zu hören, und nehme die möglichen Nebenwirkungen in Kauf.
Sieht jetzt so aus:
Die eigentlichen Fragen dazu: Liegt das an mir und meiner sehr sehr extrem sehr alten Installation, die aus einer Zeit stammt, als die Versionsnummern noch mit 0 begannen? Liegt es an den Server-Einstellungen (auf die ich keine Einfluss habe)? Sollte die Software das automatisch korrekt anhand der eingestellten Ausgabe-Konfiguration machen und es wurde nur vergessen? Bin ich der Einzige mit dem Problem? Fragen über Fragen...function serendipity_smarty_formatTime($timestamp, $format, $useOffset = true, $detectTimestamp = false, $useDate = false) {
if ($detectTimestamp !== false && stristr($detectTimestamp, 'date') === false) {
$out = $timestamp;
} else {
if (defined($format)) {
$out = serendipity_formatTime(constant($format), $timestamp, $useOffset, $useDate);
} else {
$out = serendipity_formatTime($format, $timestamp, $useOffset, $useDate);
}
}
return mb_convert_encoding($out, 'ISO-8859-1', 'UTF-8');
}