Wie mit header() das Encoding umstellen?
Ich möchte das im HTTP-Header definierte Encoding mit PHP umstellen. NICHT ZU VERWECHSELN MIT DEM <head>-TAG BEI HTML!!!
Hallo,
Ich möchte auf meiner Webseite das Encodung auf UTF-8 umstellen. Das hat folgenden Grund: Wenn ich direkt aus der Datenbank lese, werden äs, ös, üs, ßes oder auch vielleicht mal ein [chinesische Zeichen kopiert von china.cn können hier offenbar nicht eingefügt werden; hat das auch was mit dem encoding zu tun ] (ich hoffe das ist kein Schimpfwort) nicht in die Gängigen ü etc. umgewandelt - was ja vollkommen normal ist. Da wenn aus der Datenbank gelesen und ausgegeben wird, das Encoding das der Server vorgibt, und somit das Encoding was im HTTP-Header steht, verwendet wird, gibt es keine Probleme mit äs, die zu einem Ä% oä werden. Wenn ich aber selbst im PHP-Code ein echo() vornehme und ein ä DIREKT ausgebe, kommt es zum genannten Problem. Mein Server nutzt nämlich das iso-8859-1-Encoding. Mein GNOME-Desktop bzw. Anjuta (meine Entwicklungsumgebung) speichert aber in UTF-8. Und das ist das Problem. Da ich ein Perfektionist bin, will ich kein Mischmasch aus ß und 'echten' ßes.
Wie lautet der korrekte Syntax von header() um die gewünschte Einstellung vorzunehmen?
Gruß
DeeDee0815
Hallo,
Ich möchte auf meiner Webseite das Encodung auf UTF-8 umstellen. Das hat folgenden Grund: Wenn ich direkt aus der Datenbank lese, werden äs, ös, üs, ßes oder auch vielleicht mal ein [chinesische Zeichen kopiert von china.cn können hier offenbar nicht eingefügt werden; hat das auch was mit dem encoding zu tun ] (ich hoffe das ist kein Schimpfwort) nicht in die Gängigen ü etc. umgewandelt - was ja vollkommen normal ist. Da wenn aus der Datenbank gelesen und ausgegeben wird, das Encoding das der Server vorgibt, und somit das Encoding was im HTTP-Header steht, verwendet wird, gibt es keine Probleme mit äs, die zu einem Ä% oä werden. Wenn ich aber selbst im PHP-Code ein echo() vornehme und ein ä DIREKT ausgebe, kommt es zum genannten Problem. Mein Server nutzt nämlich das iso-8859-1-Encoding. Mein GNOME-Desktop bzw. Anjuta (meine Entwicklungsumgebung) speichert aber in UTF-8. Und das ist das Problem. Da ich ein Perfektionist bin, will ich kein Mischmasch aus ß und 'echten' ßes.
Wie lautet der korrekte Syntax von header() um die gewünschte Einstellung vorzunehmen?
Gruß
DeeDee0815
Please also mark the comments that contributed to the solution of the article
Content-ID: 39553
Url: https://administrator.de/contentid/39553
Printed on: December 14, 2024 at 19:12 o'clock
2 Comments
Latest comment
Hallo,
das muss so lauten:
header('content-type: text/html; charset=utf-8');
Allerdings wäre es technisch - meiner Meinung nach - besser, wenn Du UTF-8 gleich in der php.ini angibst (sofern Du denn Zugriff darauf hast):
default_mimetype = "text/html"
default_charset = "utf-8"
Wenn der Server schon korrekt auf UTF-8 eingestellt ist, dann sollte das Senden eines neuen HTTP-Headers doch eigentlich nichts mehr bringen, oder? Der Server sendet dann doch schon den richtigen Header bezüglich des Charsets. Also bleibt eigentlich nur die direkte Angabe für PHP in der ini-Datei...
Gruß,
Tim
das muss so lauten:
header('content-type: text/html; charset=utf-8');
Allerdings wäre es technisch - meiner Meinung nach - besser, wenn Du UTF-8 gleich in der php.ini angibst (sofern Du denn Zugriff darauf hast):
default_mimetype = "text/html"
default_charset = "utf-8"
Wenn der Server schon korrekt auf UTF-8 eingestellt ist, dann sollte das Senden eines neuen HTTP-Headers doch eigentlich nichts mehr bringen, oder? Der Server sendet dann doch schon den richtigen Header bezüglich des Charsets. Also bleibt eigentlich nur die direkte Angabe für PHP in der ini-Datei...
Gruß,
Tim