Frage zur Zeichencodierung

visiondpc

Erfahrenes Mitglied
Hallo, ich verzweifel grade an einem Problem mit einem Templateparser.
Nachdem ich mein Template und die Inhalte mittels
PHP:
eval("\$template->templateOutput(\"".$template->getTemplate('global_index')."\");");
geparst habe wurden allerdings keine Sonderzeichen mehr angezeigt.
Durch setzen eines Headers klappt es jetzt zwar im Firefox, der InternerExplore gibt mir aber immer noch die kryptischen Zeichen anstelle der Sonderzeichen aus.
PHP:
header("Content-type: text/html; charset=".$_SERVER['HTTP_ACCEPT_CHARSET']);

Hat vielleicht jemand einen Tipp, wie ich das auch für den IE ordentlich darstellen kann?
 
Du kannst bei der Antwort selbstverständlich nur diejenige Zeichenkodierung angeben, die auch tatsächlich verwendet wird.
 
Leg den charset auf UTF-8 fest..
Also statt
PHP:
header("Content-type: text/html; charset=".$_SERVER['HTTP_ACCEPT_CHARSET']);
Um den vom Browser akzeprierten Zeichensatz zu verwenden
PHP:
header("Content-type: text/html; charset=UTF-8");
Um dem Browser den Zeichensatz aufzuzwingen
 
Davon gehe ich mal einfach aus, da ich immer unschöne Codierungen gesehn hab, wenn Daten in UTF-8 als iso-88xx-1 geschrieben werden sollten...

Und da UTF-8 meines Wissens, der gebräuchlichste ist, bzw meistens zur Codierung verwendet wird, hab ich die Behauptung so in den Raum gestellt ;)
 
Es könnte aber auch genau das Gegenteil der Fall sein: Die Daten wurden auf Basis von ISO 8859-1 oder eines anderen Zeichensatzes mit 8-Bit-Kodierung kodiert und kann nicht mit UTF-8 dekodiert werden. Dieses Szenario ist sogar wahrscheinlicher, da ISO 8859-1 Standardzeichensatz/-kodierung vieler (vor allem älterer) Sprachen und Technologien ist und Browser diese ebenfalls häufig eingestellt haben.
 
Ich versuche ja den Zeichensatz über $_SERVER['HTTP_ACCEPT_CHARSET'] automatisch festzulegen. Seltsamerweise ist diese Variable beim IE leer.
utf-8 funktioniert im IE auch nicht. Allerdings klappt es wenn ich windows-1252 oder ISO-8859-1 verwende.
Das bedeutet also, dass man beim anlegen einer neuen Sprache gleich den Zeichensatz angeben müsste um das irgendwie zu handhaben.
 
In einigen Editoren kann man die gewünschte Kodierung festlegen, so dass neue Dokumente immer gleich im richtigen Format kodiert sind. ( ein Editor wäre zum Beispiel notepad++ )

Musst mal hier im Forum suchen, da gab es mal einen Link zu einer schönen Erklärung zum Thema Zeichenkodierung.
 
Der Versuch, auf die Vorzüge des Benutzers einzugeben, ist zwar löblich. Doch wenn du die Vorzüge nicht wirklich bedienen kannst, ist es falsch, ihm dies zu vermitteln. Zumal es auch wie zu sehen zu Problemen führt.
Denn wenn die Daten nicht tatsächlich die beschriebenen Eigenschaften besitzen, kommt es zu Fehlern.
 
Lösung müsste doch sein das in ne if-Schleife zu haun...
Prüfen, ob in der Var drin steht, was man brauch...
Wenns drin steht benutzen, ansonsten nen standart Code-Satz...
 
Zurück