Problem mit UTF-8 und validator.w3.org

  • Hallo,

    ich will eine Webseite von ISO-8859-15 nach utf-8 umstellen. Habe das im Doctype <meta http-equiv="Content-Type" ...> entsprechend geändert. Danach macht der Validator leider eine Fehlermeldung. Auch das hinzufügen von header('Content-Type: text/html; charset=utf-8'); am Anfang des php Skriptes hat keine Änderung gebracht.

    Die Webseite läuft mit php. Ein Skript setzt die Seite aus mehreren Text- und HTML-Dateien zusammen. Könnte es daran liegen, dass einige von diesen Dateien nicht als utf-8 auf dem Server liegen? Oder was kann folgende Fehlermeldung von validator.w3 bedeuten?

    Zitat

    Sorry, I am unable to validate this document because on line 11 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.

    The error was: utf8 "\xF6" does not map to Unicode

    Wo sollte ich da mal nach der Ursache suchen?

    Zeile 11 sieht so aus:

    Code
    <meta name="description" content="Ein online Einkaufszentrum mit diversen Artikeln, z.B. Handys, Computer, PC Zubehör, DSL-Anschluss, Handy-Vertrag, Webhosting. Das Einkaufszentrum legt besonderen Wert auf zuverlässige Einkaufsmöglichkeiten im Internet.">

    Was ich seltsam finde:

    In Zeile 10 sind auch mehrere Umlaute. Aber darüber beschwert sich der Validator nicht. Beide Zeilen befinden sich in der selben Textdatei.

    Seltsam find....

  • Zitat


    Was ich seltsam finde:

    In Zeile 10 sind auch mehrere Umlaute. Aber darüber beschwert sich der Validator nicht. Beide Zeilen befinden sich in der selben Textdatei.

    Das ist nicht seltsam. Sobald du Zeile 11 korrigierst, wird er Zeile 10 bemängeln.
    Das liegt daran, dass er beim ersten Auftreten eines Fehlers dieser Art das validieren abbricht.

    Du musst also sämtliche Umlaute maskieren, dann wirst du beim Validieren auch keine fehler mehr bekommen, bzw. Dann sagt er dir auch deine anderen Fehler :D

    Gruß,
    jojo


  • Zitat

    Du musst also sämtliche Umlaute maskieren, dann wirst du beim Validieren auch keine fehler mehr bekommen


    Das glaube ich kaum. Laut W3C heisst es:

    "Es ist fast immer besser, eine Zeichencodierung zu benutzen, die es erlaubt, die Zeichen in ihrer normalen Form zu verwenden, anstatt Zeichen-Entity-Referenzen oder numerische Zeichenreferenzen zu verwenden.

    Die Verwendung von Escapes macht den Quelltext schlechter lesbar und schwerer zu pflegen und kann auch die Dateigröße beträchtlich erhöhen."

    siehe: http://www.w3.org/International/questions/qa-escapes.de.php

    Weiter heisst es dort:

    "Der Wechsel zu UTF-8 bedeutet erneutes Speichern der Datei. Bei Verwendung einer Zeichencodierung wie UTF-8 kann auf die meisten Escapes verzichtet werden und einfach mit den Zeichen selbst gearbeitet werden. Um die Zeichencodierung eines Dokuments zu ändern, genügt es nicht, nur die Angabe der Zeichencodierung am Anfang der Seite oder auf dem Server zu ändern. Man muss das Dokument erneut speichern – in eben dieser Zeichencodierung."

    Eigentlich alles ganz toll und scheint so einfach. Mein Problem ist nur, ich habe die Datei, in der jene vom Validator mukierte Zeile vorkommt, erneut als UTF-8 gespeichert. Trotzdem weigert sich der Validator. Warum?

  • Zitat

    Da sollten die Umlaute kein Problem bereiten.

    Aber mit ISO-8859-1 hätte ich, wie bei ISO-8859-15 das veraltete Ding mit den blöden Sonderzeichen-Codierungen. Darum doch der Wechsel zum moderneren UTF-8. Warum das besser ist dürfte aus dem Posting drüber zu entnehmen sein.

  • So denn.... es lag wohl an meinem HTML-Editor, obwohl der eigentlich standardmässig in UTF-8 hätte auf HD schreiben sollen hat er es mit älteren Dateien nicht getan. Hab mal mit nem einfachen Texteditor betreffende Datei neu und als UTF-8 gespeichert. Damit geht's. :D