Hallo Community
Dies ist mein erster Beitrag hier ... habe zwar versucht, die Probleme durch durchstöbern diverser Seiten zu lösen, aber das klappt nicht ganz.
Und zwar geht es mal wieder um das leidige Thema utf-8. Ich habe eine Seite (in xhtml 1.0 strict), welche ich als html und utf-8 ausliefern möchte. So weit, so gut.
Also benutze ich folgenden Doctype und Metaangabe:
Dann habe ich über diesem Dokument noch den utf-8 Header angegeben:
Zeichen wie ä, ö, ü ließen sich nun darstellen (nur beim Auslesen von Text aus einer MySQL-DB musste ich mit mysql_encode arbeiten, damit die umlaute korrekt dargestellt wurden.) Wenn ich mich richtig erinnere, hatte der w3c-Validator auch keinerlei Beanstandungen.
Dann fiel mir ein, dass ich die Datei selbst garnicht als UTF-8 abgespeichert hatte und wollte dies nachholen. Gesagt, getan - doch plötzlich wirft PHP die Meldung " headers already sent (output...". Das seltsame daran: Ändere ich die Datei wieder auf ANSI statt UTF-8, verschwindet die Meldung wieder.
Nun gut, ich dachte dann, dass ich den Header vllt garnicht senden muss und habe die Zeile rausgenommen. Jedoch meldet der W3C-Validator jetzt Fehler:
Nochmal kurz:
Datei in Ansi + Headerangabe; funktioniert
Datei in UTF-8 + Headerangabe; php zeigt Fehler
Datei in UTF-8 ohne Headerangabe: Validator meldet Fehler
Ich könnte die Datei ja auch in Ansi lassen, aber das ich ja nicht der Sinn der Sache.
Was ist da kaputt?
Danke
Dies ist mein erster Beitrag hier ... habe zwar versucht, die Probleme durch durchstöbern diverser Seiten zu lösen, aber das klappt nicht ganz.
Und zwar geht es mal wieder um das leidige Thema utf-8. Ich habe eine Seite (in xhtml 1.0 strict), welche ich als html und utf-8 ausliefern möchte. So weit, so gut.
Also benutze ich folgenden Doctype und Metaangabe:
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
[usw...]
Dann habe ich über diesem Dokument noch den utf-8 Header angegeben:
PHP-Code:
header('content-type: text/html; charset=utf-8');
Dann fiel mir ein, dass ich die Datei selbst garnicht als UTF-8 abgespeichert hatte und wollte dies nachholen. Gesagt, getan - doch plötzlich wirft PHP die Meldung " headers already sent (output...". Das seltsame daran: Ändere ich die Datei wieder auf ANSI statt UTF-8, verschwindet die Meldung wieder.
Nun gut, ich dachte dann, dass ich den Header vllt garnicht senden muss und habe die Zeile rausgenommen. Jedoch meldet der W3C-Validator jetzt Fehler:
Line 1, Column 0: character "" not allowed in prolog.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
sowie
Line 1, Column 3: XML Parsing Error: Start tag expected, '<' not found.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
sowie
Line 1, Column 3: XML Parsing Error: Start tag expected, '<' not found.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
Nochmal kurz:
Datei in Ansi + Headerangabe; funktioniert
Datei in UTF-8 + Headerangabe; php zeigt Fehler
Datei in UTF-8 ohne Headerangabe: Validator meldet Fehler
Ich könnte die Datei ja auch in Ansi lassen, aber das ich ja nicht der Sinn der Sache.
Was ist da kaputt?
Danke
Kommentar