Veröffentlicht 23. Juli 200520 j Hallo zusammen, ich habe eine Seite mit folgendem Header: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="pl"> <head> <title>Redaxo-Demo - Modu³y</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> <meta http-equiv="Content-Language" content="pl" /> <link rel=stylesheet type=text/css href=css/style.css /> <script language=Javascript src=js/standard.js></script> <script language=Javascript> <!-- var redaxo = true; //--> </script> </head> Diese Seite wird aus PHP generiert und an den Browser geschickt. Dieser stellt leider die polnischen Sonderzeichen trotz angabe des entspr. Charsets falsch dar. Wenn ich die Seite nun "speichern unter" und direkt in meinen Browser ziehe, dann gehts... Wo liegt mein Problem? Bin dankbar für alle Tipps. Gruß, Markus
23. Juli 200520 j Dieser stellt leider die polnischen Sonderzeichen trotz angabe des entspr. Charsets falsch dar.Wird eventuell noch zusätzlich der HTTP Header Content-Type gesetzt? Wenn das der Fall ist ignoriert der Browser gerne mal die Angabe innerhalb der Seite und gibt dem Header den Vorzug.
24. Juli 200520 j Wenn Du Dir den Quellcode der Seite ansiehst, sind da schon vor dem Doctype Ausgaben wie ein Absatz oder ähnliches? Vieleicht hat der Browser auch ein Problem mit gemisch aus XHTML und HTML. Also <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> im XHTML und <link rel=stylesheet type=text/css href=css/style.css /> wieder als HTML. <link rel="stylesheet" type="text/css" href="css/style.css"> wäre valides HTML. Wird aber wahrscheinlich am ersteren liegen. Den Internet Explorer sollte das Gemisch nicht groß stören. Vielmehr sollte da ein Header, der von php an den Browser gesendet wird und somit der HTML- Header ignoriert, Probleme machen. Abhilfe wäre das Entfernen aller Leerzeichen und Absätze im php, was aber dann zu einem sehr "übersichtlichen" Code führt oder aber verhindern, dass ein Header gesendet wird. Damit der Header erst gesendet wird, wenn die Seite komplett geladen wird, gibt es die Befehle ob_start zum Einschalten des Bufferings und ob_flush zum leeren des Buffers bzw. senden der abgearbeiteten Seite. Ein anderer Weg wäre das Senden eines entsprechenden header() im php. Der sollte nur, wie viele anfangs falsch machen, vor jedweder Ausgabe an den Browser gesetzt werden. Selbst eine Leerzeile gillt als Ausgabe. Fatzit: Valider HTML- Code ist für das Auge schöner. Der 2. und 3. Lösungsweg sollten das Problem auf jeden Fall beheben wobei der 3. wohl einfacher zu implementieren ist. Ich hoffe ich konnte Dir weiterhelfen.
25. Juli 200520 j Hi, Das mit dem Header usw war mir bewusst. Das Rätsels Lösung war folgendes: header('Content-Type: text/html; charset=charset=iso-8859-2'); [/PHP] Der Webserver hat wohl von sich aus einen Charset selbst mitgeschickt, den ich hiermit wieder überschrieben habe. Destotrotz, danke für die Hilfe. Gruß, Markus PS: Die Leerzeile vorm Doctype ist nur hier im Forum, im Quelltext war diese nicht...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.