malnefrage.de
malnefrage.de
Menü
Facebook
Twitter
E-Mail
Bookmark
weitere
Ratgeber-Community für Fragen & Antworten:
Forum mit Tipps, Hilfe und Ratschläge
Forum Frage stellen! Neue Fragen Neue Antworten Login
Frage
Frage
von Bisido am 20.02.2018, 13.14 Uhr

Apache 2.4 AddDefaultCharset keine Auswirkung?

Ich habe XAMPP mit Apache 2.4.29, MariaDB 10.1.30 und PHP 7.2.2 frisch installiert.

Da viele meiner Webseiten mit ISO-8859-1 programmiert sind und der Apache 2.4 standardmäßig alle Seiten mit UTF-8 ausliefert, gibt es Umlautprobleme. D.h. alle Umlaute werden mit einem Fragezeichen dargestellt.

Jetzt wollte ich den Zeichensatz von UTF-8 auf ISO-8859-1 umstellen, damit die Umlaute wieder korrekt angezeigt werden. Ich habe dazu in der httpd.conf die Zeile
AddDefaultCharset ISO-8859-1
eingefügt. Leider behebt dies den Fehler nicht! Der Response Header zeigt auch weiterhin "Content-Type: text/html; charset=UTF-8" an.

Egal wo ich das "AddDefaultCharset ISO-8859-1" notiere, in der httpd.conf, in einer .htaccess oder in der VHosts-Konfiguration, der Apache liefert alle Seiten immer mit UTF-8 aus.

Woran liegt das? Was mache ich falsch? Wie kann ich den Standard Zeichensatz des Apache ändern? Ich möchte ungern alle Dateien von Hand auf UTF-8 konvertieren.

Antwort
Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von WerWiego am 20.02.2018, 18.47 Uhr
Standardmäßig wird der Charset über die Direktive AddDefaultCharset nur für Files im Format text/plain und text/html gesetzt. Wenn du dynamisch generierte Seiten erzeugst, bspw. mit PHP, musst du dies über den default-charset in der php.ini entsprechend ändern.
In der Apache-Konfiguration kann man über AddCharset für einzelen Dateitypen noch zusätzlich gezielt Angaben machen.


Antwort
Antwort
von Ingo am 23.02.2018, 09.24 Uhr
Wenn du deine Seiten vor der Ausgabe über den php Parser schickst (.php oder auch wenn du mod_rewrite einsetzt), dann musst du dafür sorgen, dass php im gewünschten Zeichensatz läuft. Wenn Fragezeichen anstatt der Umlaute oder Hieroglyphen angezeigt werden, dann liegt das immer am falschen Zeichensatz.

Antwort
Antwort
von Johnmiller am 21.02.2018, 18.37 Uhr
Du musst bei allen Einstellungen das Charset gleich setzen, nicht nur in der Apache Config.

Auch in der php.ini
default_charset="ISO-8859-1"
Zusätzlich kannst du den Header auch in allen php Scripts setzen
header('Content-type', 'text/html; charset=iso-8859-1');
Per directive in einer .htaccess ist es auch möglich
AddDefaultCharset iso-8859-1
Sollte es zusätzlich noch Probleme mit Inhalten aus der Datenbank geben hilft
mysqli_set_charset($db_kennung, "ISO-8859-1");
Ähnliche Fragen
Hi, seitdem ich ein Update von Windows 10 auf Version 1803 (Buil 17134.48) gemacht habe, startet der Apache Server unter XAMPP nicht mehr. Foglende ...
Hat Kälte eine Auswirkung auf die Funktion einer Zündkerze? Funktionieren Zündkerzen bei kalten Temperatur schlechter als bei warmen? Oder hat die ...
Hallo, wenn ich in OpenOffice eine Zahl mit Punkt dahinter schreibe und ich nach einem weiteren Wort einen Zeilenumbruch mit Enter einfügen will, dann wird ...
Hallo, mein Problem ist das der MySQL Server nicht mehr startet. Ich habe auf einem Windows 10 Rechner zu Testzwecken XAMPP installiert. Bis gestern hat ...
Da ich momentan mit meiner Figur etwas unzufrieden bin, habe ich mir mal wieder vorgenommen, ein bisschen abzunehmen. Das Internet ist ja bekanntermaßen ...
Nächste Frage

Die auf malnefrage.de veröffentlichten Fragen und Antworten sind Meinungsäußerungen der jeweiligen User. Da die Aussagen nicht geprüft werden, kann die Richtigkeit der Inhalte nicht gewährleistet werden.