deedee0815
Goto Top

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 face-wink] (ich hoffe das ist kein Schimpfwort) nicht in die Gängigen &uuml; 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 &szlig; und 'echten' ßes.

Wie lautet der korrekte Syntax von header() um die gewünschte Einstellung vorzunehmen?

Gruß
DeeDee0815

Content-ID: 39553

Url: https://administrator.de/contentid/39553

Printed on: December 14, 2024 at 19:12 o'clock

11078
11078 Sep 06, 2006 at 19:00:12 (UTC)
Goto Top
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
DeeDee0815
DeeDee0815 Sep 07, 2006 at 17:37:35 (UTC)
Goto Top
Hallo Tim,

danke für die Lösung. Ich habe leider keinen Zugriff auf die php.ini. ini_set() ist auch deaktiviert. Der Server ist eben nicht auf UTF-8 eingestellt. Sondern auf ISO-8859-1. Mein Editor speichert aber in UTF-8. Dir Folge davon ist, dass ein im Editor direkt eingegebener Umlaut im Browser falsch codiert wird, und ich keine Lust mehr auf &uuml; & co habe.

Vielen Dank,
DeeDee0815