dedlfix: UTF8 - Sonderzeichenformatierung

Beitrag lesen

Hi!

Content-type: text/html; charset=UTF-8
Ja, aber PHP trennt diese beiden Angaben in unterschiedliche Konfigurationswerte. Und, während default_mimetype den Default-Wert text/html hat, ist default_charset leer.
Früher hab ich das auch immer leer gelassen. Das ist nicht empfehlenswert.

Du verwechselst da grad was. Ich sprach nicht von der Angabe im HTTP-Header sondern von der PHP-Direktive.

[..] Eine Alternative ist AddDefaultCharset in der Apache-Konfiguration oder eine explizite header()-Sendung seitens PHP.
Als Alternative sehe ich das nicht. Siehe auch:

Fehlinterpretation als Folgefehler deinerseits.

http://www.w3.org/International/O-HTTP-charset
".. Use the header() function before generating any content, .."

-----> Und genau hier schlagen die üblichen Verdächtigen ein, die PHP dazu bringen, einen spontanen Header zu feuern, wo die charset Angabe auch noch fehlt.

PHP feuert keine spontanen Header. Entweder man setzt welche mit header(), oder PHP teilt dem Apachen den Wert unter default_mimetype mit, welcher Content-type zu erwarten ist (und, falls gefüllt, default_charset). Ob der Apache in dem Fall, in dem ihm keine charset-Angabe vorliegt, eine solche ergänzt, ist in seiner Konfiguration festgelegt.

Dass es sinnvoll ist, eine charset-Angabe in Richtung Client zu senden, steht außer Frage. Hier geht es aber darum, wie man das hinbekommt, und dass es mehrere Wege gibt, das zu erreichen.

Lo!