UTF-8 Problem: Manchmal werden Zeichen nicht richtig dargestellt
Felix Koch
- webserver
Hallo zusammen, liebes Forum,
Ich habe in einem Projekt folgendes unglückliches Problem.
Mit UTF-8-mit-BOM kodierten PHP-Skripten geben wird UTF-8-Zeichen aus. In der HTML-Header-Direktive, sagen wir dass es sich um UTF-8-Daten handelt und in der .htaccess haben wir den DefaultCharset auf UTF-8 gesetzt. Dem HTTP-Header entnehmen wird, dass die Zeichen auch als UTF-8 kodiert gesendet werden, übrigens auch wenn das Problem auftritt.
Hier das Problem:
In weniger als 1% der Reloads der selben Skripte werden Sonderzeichen falsch kodiert in den verschiedenen Browsern angezeigt. Hierbei handelt es sich unter anderem auch um statische Texte, also nicht aus der DB kommen und fest kodiert sind.
Kennt jemand das Problem und eine Lösung?
Untenstehender Thread hat uns nicht weitergebracht:
http://forum.de.selfhtml.org/archiv/2006/6/t131364/
Gruß Felix Koch
Hallo Felix,
Ich habe in einem Projekt folgendes unglückliches Problem.
Mit UTF-8-mit-BOM kodierten PHP-Skripten geben wird UTF-8-Zeichen aus. In der HTML-Header-Direktive, sagen wir dass es sich um UTF-8-Daten handelt und in der .htaccess haben wir den DefaultCharset auf UTF-8 gesetzt. Dem HTTP-Header entnehmen wird, dass die Zeichen auch als UTF-8 kodiert gesendet werden, übrigens auch wenn das Problem auftritt.
Nur der Information halber: Passiert dies nur auf SSL-verschlüsselten Seiten?
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Hallo Marc,
Nur der Information halber: Passiert dies nur auf SSL-verschlüsselten Seiten?
Nein, aber der Interesse halber, in welche Richtung geht denn der Gedanke?
Gruß Felix
Hallo Felix,
Nur der Information halber: Passiert dies nur auf SSL-verschlüsselten Seiten?
Nein, aber der Interesse halber, in welche Richtung geht denn der Gedanke?
Firefox 3 (wie auch Firefox 2) hat Probleme mit SSL-basierten VirtualHosts.
Als Folge dessen kommt es manchmal vor, dass die Sonderzeichen auf der Seite nicht korrekt angezeigt werden - oder Elemente nicht geladen werden können.
Da dies bei dir aber nicht der Fall sein dürfte, nehme ich eher an du solltest Svens Vorschlag ausprobieren.
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Moin!
Mit UTF-8-mit-BOM kodierten PHP-Skripten geben wird UTF-8-Zeichen aus.
Die BOM liefert dir potentiell Ansatzpunkte für Ärger. Da die drei Bytes der BOM vor dem ersten öffnenden PHP-Tag "<?php" liegen, erzeugt PHP immer schon eine Ausgabe, die dir z.B. die Header absendet. Weiterhin erhältst du auch innerhalb der zu generierenden Seite diese BOM-Zeichen, wenn du Include-Dateien, die ihrerseits mit BOM starten, in das Skript einfügst.
Grundsätzlich kann man sagen: Eine BOM ist bei UTF-8 prinzipiell überflüssig, daher sollte man auf sie verzichten, erst recht dann, wenn die Primäranwendung der UTF-8-codierten Datei damit Probleme haben könnte oder hat. PHP als Primäranwendung von "passend formatierten" Textdateien hat eventuell Probleme, also die Dateien immer ohne BOM speichern.
Ob das dein Problem schon löst, kann ich dir natürlich nicht versprechen - aber es ist die allererste Auffälligkeit, die mir in deiner Beschreibung ins Auge springt.
- Sven Rautenberg