Hallo Zusammen!
Ich stehe vor einem Problem mit der Kodierung von UTF-8 auf verschiedenen Server.
Am Anfang meines PHP Scripts mach ich folgendes:
Mein HTML Startingtag schaut so aus:
Soweit so gut, das funktioniert auch prima. Mein Problem ist jetzt folgendes. Ich versuche mittels strfttime die Monatsnamens eines Zeitstempels in Deutsch auszugeben.
Das mache ich so:
Diese Ausgabe funktioniert auf meiner Windows Dev Maschine ohne Probleme (Umlaut werden korrekt dargestellt), aber auf der Linux Maschine werden umlaute falsch Dargestellt (Komische Zeichen). Wenn ich aber jetzt die Funktion utf8_encode() wegschmeise bei der ausgabe, funktioniert der Output in Linux, aber nicht mehr in Windows.
Ich hab bereits mittels mb_detect_encoding() versucht die coedierung vom rückgabewert strfttime() zu Prüfem mittels:
Sowohl Linux als auch Windows gibt mir hier bereits UTF-8 zurück. Also eigentlich sollte ich die Funktion utf8_encoding() gar nicht nötig sein, allerdings funktionierts hald nicht auf windows.
Ich habe bereits versucht die strtoupper mit mb_stritoupper zu ersetzen bzw. mb_http_output("UTF-8") auszugeben, aber auf keinen der Maschinen ändert sich was.
Hat jemand eine Idee wie ich das Problem lösen kann oder wo der Fehler liegt?
Danke!
Ich stehe vor einem Problem mit der Kodierung von UTF-8 auf verschiedenen Server.
Am Anfang meines PHP Scripts mach ich folgendes:
PHP-Code:
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
{
setlocale(LC_ALL, "deu");
}
else
{
setlocale(LC_ALL, 'de_DE.UTF-8');
}
HTML-Code:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ....
Das mache ich so:
PHP-Code:
$date = DateTime::createFromFormat('Y-m-d', $a_acticle['date']);
echo utf8_encode(strtoupper(strftime("%d / %B / %Y /", $date->getTimestamp())));
Ich hab bereits mittels mb_detect_encoding() versucht die coedierung vom rückgabewert strfttime() zu Prüfem mittels:
PHP-Code:
echo mb_detect_encoding(strftime("%d / %B / %Y /", $date->getTimestamp()));
Ich habe bereits versucht die strtoupper mit mb_stritoupper zu ersetzen bzw. mb_http_output("UTF-8") auszugeben, aber auf keinen der Maschinen ändert sich was.
Hat jemand eine Idee wie ich das Problem lösen kann oder wo der Fehler liegt?
Danke!

Kommentar