Sven Rautenberg: Umlaute in mysql

Beitrag lesen

Moin!

Auf einer Seite hatte ich als charset=iso-8859-1 angegeben. Es hat nicht funktioniert. Mit utf-8 funktioniert es.

Logisch, diese Angabe muß übereinstimmen mit der tatsächlich gewählten Zeichencodierung im Dokument.

Wobei sich für mich folgende Fragen stellen:

  • Hat die Angabe im HTML-header Einfluss darauf wie die Zeichen im Quellcode dargestellt werden?

Es gibt zwei Stellen, an denen die Zeichencodierung stehen kann:
1. Priorität hat der HTTP-Header.
2. Wenn dieser keine Angaben macht, gilt das HTML-Meta-Tag <meta http-equiv="content-type" content="text/html; charset=...">

Server können den HTTP-Header entweder fest eingestellt oder auch basierend auf der im HTML enthaltenen Angabe im HTTP-Header setzen. Deshalb ist es niemals verkehrt, in HTML korrekte Angaben zu machen (die wirken außerdem auch dann noch, wenn kein HTTP benutzt wird, also z.B. bei Seiten auf Festplatte).

  • Im Quellcode (charset=utf8) steht jetzt ein Ü. Müsste das nicht als &Uuml; im Quellcode stehen, damit alles korrekt ist?

Nein, das Ü ist korrekt. Du hast ja schließlich keine Entity in den Text geschrieben. Entities sind nicht zwingend notwendig, man kommt prima ohne sie aus.

  • gibt es einen Weg, damit die Zeichen bei charset=iso-8859-1 korrekt angegeben werden? Sind hier die php funktionen utf8_decode bzw. utf8_encode richtig?

Die Frage ist doch, warum du ISO-8859-1 willst? Ich empfehle immer dringend, eine durchgehend einheitliche Zeichencodierung zu verwenden. Das gibt am wenigsten interne Probleme.

- Sven Rautenberg

--
My sssignature, my preciousssss!