Thomas: "non SGML character number"

Hallo!

Ich bin dabei meine Seite HTML 4.01 zu validieren... Die meisten Fehler habe ich ausgemerzt, aber mit den SGML charactern komme ich nicht klar.

http://www.muscle-forum.de

Wäre super wenn sich das jemand anschauen würde.

Z.B. wird hier gemeckert:
<tr>
 <td>&nbsp;</td>
 <td align="left" width="12"><img src="grafiken/link.gif" alt="Bodybuilding" height="7" width="8"></td>
 <td align="left"><a href="link_out.php?id=11" class="link1" title="Pralle Muskeln, breite Schultern, ein stahlharter Waschbrettbauch – davon träumen alle Männer, die ein Fitnessstudio besuchen." target="_news">Doping im Sport – Auch Freizeitsportler helfen nach</a></td>
 <td>&nbsp;</td>
</tr>

P.S. Es geht erst mal nur um die Startseite und nicht um irgendwelche Unterseiten...

Danke für eure Hilfe.

  1. Hello out there!

    1. Error  Line 343 column 161: non SGML character number 150.

    Waschbrettbauch – davon träumen alle Männer

    ^
    Um dieses Zeichen geht’s.

    Im Windows-Zeichensatz steht das an der Stelle 150 = x96; und dein Editor  bzw. die Software, die die Nachrichten reinsetzt, schreibt dir das als Byte mit dem Wert x96 in die Datei. Du denkst, das wäre ISO-8859-1-codiert, ist es aber nicht: in ISO 8859-X sind die Bytes x7F bis x9F (127 bis 159) Codes für Steuerzeichen.

    Wenn du '–' (U+2013 en dash) im Quelltext verwenden willst, musst du eine Codierung wählen, die dieses Zeichen enthält. UTF-8 ist erste Wahl. Es ginge aber auch windows-1252 (das ist die, bisher verwendet wird).

    Dein Server muss die verwendete Codierung richtig im HTTP-Header angeben, und auch die HTTP-EQUIV-Angabe im Dokument sollte stimmen.

    Wenn du an ISO 8859-1 gebunden bist, müsstest du die nicht in dieser Codierung erfassten Zeichen als numerische oder Entity-Zeichen-Referenzen notieren (&#x2013; bzw. &ndash;), die Wahl einer geeigneten Codierung ist aber vorzuziehen.

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. Wenn du '–' (U+2013 en dash) im Quelltext verwenden willst, musst du eine Codierung wählen, die dieses Zeichen enthält. UTF-8 ist erste Wahl. Es ginge aber auch windows-1252 (das ist die, bisher verwendet wird).

      Dake für die flotte Anwort!
      Ich habe es mit uft8_encode probiert. Problem dabei ist, dass dann alle Umlaute falsch dargestellt werden. Es treten hierbei mehr "Anzeigenfehler" auf als vorher :/

      1. Hello out there!

        Es treten hierbei mehr "Anzeigenfehler" auf als vorher :/

        Dann machst du etwas falsch.

        Ich empfehle die die Lektüre von <http://de.selfhtml.org/inter/sprache.htm@title=Computer und geschriebene Sprache> und http://de.selfhtml.org/inter/zeichenkodierungen.htm@title=Zeichenkodierungen.

        Und aufpassen, dass die beim Speichern des Dokuments verwendete Codierung mit der vom Server im HTTP-Header angegebenen und mit der in der HTTP-EQUIV-Meta-Angabe im Dokument übereinstimmt.

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)