Validator +Interpretation
Jani
- html
-1 Cheatah0 Jani
0 Struppi1 Gunnar Bittersmann
Hallo,
ich habe eine HTML-Datei validiert, leider kann ich mit dem Ergebnis nicht wirklich was anfangen. Hat jemand eine Idee:
Die Meldung lautete:
Sorry, I am unable to validate this document because on line 44, 55-56, 82, 84 it contained one or more bytes that I cannot interpret as utf-8 (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication.
Aber ich weiß beim besten Willen nicht, was in diesen Zeilen falsch sein soll, oder kann man nichts auf die Nummerierung geben?
Zeile 44:
<div class="mich"><a href="lebenslauf.html" onmouseover="tauschen (2, bild3)">über mich</a></div>
Zeile 55-56
Neuer Text,<br>
alter Text hier,<br>
Zeile 82:
<h2>Hier die Überschrift!</h2>
Gruß Jani
Zeile 84:
Text, Lebenslauf, Anhänge...</p>
Hi,
Aber ich weiß beim besten Willen nicht, was in diesen Zeilen falsch sein soll,
<div class="mich"><a href="lebenslauf.html" onmouseover="tauschen (2, bild3)">über mich</a></div>
in UTF-8 kommt kein "ü" vor. Gib das von Dir bevorzugte Encoding an, oder wandle alle Sonderzeichen in Entities o.ä. um.
Cheatah
Vielen Dank an Euch beide, ich habe gedacht, das Programm würde nur die HTML-Tags prüfen. Dann muss ich noch die Umlaute umschreiben.
Noch einen schönen Tag Jani
Hello out there!
Vielen Dank an Euch beide, ich habe gedacht, das Programm würde nur die HTML-Tags prüfen. Dann muss ich noch die Umlaute umschreiben.
Nein! Du solltest die Umlaute als solche im Quelltext lassen. “It is almost always preferable to use an encoding that allows you to represent the characters in their normal form, rather than using character entities or NCRs.” [QA-ESCAPES]
Du musst dafür sorgen, dass dein Webserver im HTTP-Header die tatsächlich verwendete Codierung angibt. (Oder andersrum: in der Codierung abspeichern, die dein Server angibt.)
See ya up the road,
Gunnar
Grundsätzlich: Auch wenn es eine Schande ist, ich habe auch erst vor nicht allzu langer Zeit damit angefangen, meine Seiten zu prüfen. Während ich bei der englischen Version (auch mangels meiner Kenntnisse) öfter mal Probleme hatte, ein solches zu analysieren, hat mit der http://www.validome.org gute Dienste geleistet. Der ist zwar etwas sorgfältiger, aber er erklärt das Problem auf deutsch - und das macht es dem ein oder anderen doch etwas einfacher...
Gruß
Die Meldung lautete:
Sorry, I am unable to validate this document because on line 44, 55-56, 82, 84 it contained one or more bytes that I cannot interpret as utf-8 (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication.
Aber ich weiß beim besten Willen nicht, was in diesen Zeilen falsch sein soll, oder kann man nichts auf die Nummerierung geben?
Zeile 44:
<div class="mich"><a href="lebenslauf.html" onmouseover="tauschen (2, bild3)">über mich</a></div>
Ist das ü in utf Codiert?
Struppi.
Hello out there!
Meine Glaskugel zeigt, du hast das Dokument in ISO 8859-1 o.ä. codiert gespeichert.
Die Zeichenfolge '">über' wird also durch die Oktettfolge 22 3E FC 62 65 72 dargestellt.
Ein Client (auch der Validator ist einer) interpretiert das Dokument als UTF-8-codiert, entweder weil du das so angegeben hast oder weil dein Server das so angibt (dessen Angabe hat Vorrang).
Der Client liest also 22: '"'. Dann 3e: '>', noch alles OK. Dann liest er 'FC', und kann damit nichts anfangen, da das eine ungültige Oktettfolge ist: als erstes Oktett eines Zeichens kommen nur 0xxxxxxx, 110xxxxx oder 1110xxxx (hexadezimal also 00–7F oder C0–EF) in Frage.
Die HTML-Spec sagt: „Benutzerprogramme können einen Mechanismus bieten, der es Benutzern gestattet, inkorrekte »Zeichensatz«-Information zu überschreiben. Wenn ein Benutzerprogramm solch einen Mechanismus anbietet, sollte es das jedoch nur für die Browserfunktionalität tun und nicht für Editierfunktionen, um das Erstellen von Webseiten zu vermeiden, die mit einem inkorrekten »charset«-Parameter gekennzeichneten sind.“ [HTML401 §5.2.2] Ein Validator bietet offensichtlich keine solchen Mechanismus, und tut gut daran.
Für XML (damit auch für XHTML) gilt: „Es ist ein kritischer Fehler, wenn ein XML-Prozessor ein Entity in einer Kodierung bekommt, die er nicht verarbeiten kann. Es ist ein kritischer Fehler, wenn für ein XML-Entity (durch Vorgabewert, Kodierungsdeklaration oder Protokoll) eine bestimmte Kodierung angegeben wird, das Entity jedoch Oktett-Folgen enthält, die in dieser Kodierung nicht zulässig sind. Ebenso ist es ein kritischer Fehler, wenn ein XML-Entity keine Kodierungsdeklaration enthält und sein Inhalt kein gültiges UTF-8 oder UTF-16 ist.“ [XML §4.3.2] Ein XML-Prozessor muss dann seinen normalen Dienst einstellen.
See ya up the road,
Gunnar