So beheben Sie die Validierungswarnung „Byte-Order Mark found in UTF-8 File“.

Lesezeit: 6 Minuten

Benutzer-Avatar
rsturim

Ich habe eine xhtml-Seite, die unter dem strikten xhtml-Dokumenttyp validiert wird – aber ich bekomme diese Warnung, die ich zu verstehen versuche – und zu korrigieren.

Nur, wie finde ich diese fehlerhafte “Byte-Order Mark”. Ich bearbeite meine Datei mit Visual Studio – nicht sicher, ob das hilft.

Warnung Byte-Order Mark in UTF-8-Datei gefunden.

Das Unicode Byte-Order Mark (BOM) in UTF-8-codierten Dateien verursacht bekanntermaßen Probleme mit einigen Texteditoren und älteren Browsern. Sie sollten erwägen, seine Verwendung zu vermeiden, bis es besser unterstützt wird.

Benutzer-Avatar
TJ Crowder

Der Standortteil Ihrer Frage ist einfach: Der Byte-Order-Marke (BOM) steht ganz am Anfang der Datei.

Beim Bearbeiten der Datei zeigt VS Code in der unteren Statusleiste rechts an, welche Kodierung für die aktuelle Datei verwendet wird:

Statusleiste mit "UTF-8 mit BOM"

Klicken Sie darauf, um die Befehlspalette mit den Optionen “Erneut mit Kodierung öffnen” und “Mit Kodierung speichern” zu öffnen:

Die Befehlspalette mit den Optionen

Klicken Sie auf „Mit Codierung speichern“, um eine Liste der Codierungen zu erhalten:

Befehlspalette mit einer Liste von Dateicodierungen wie UTF-8, UTF-16 LE, UTF-16 BE

Wenn Sie eine Codierung auswählen, wird die Datei mit dieser Codierung gespeichert.

Siehe auch diese Notiz in den FAQ der Unicode-Site zu den BOM- und UTF-8-Dateien. Es hat keine andere Funktion als darauf hinzuweisen, dass die Datei tatsächlich UTF-8 ist. Insbesondere hat es keine Auswirkungen auf die Byte-Reihenfolge (der Hauptgrund, warum wir BOMs haben), da die Byte-Reihenfolge von UTF-8 festgelegt ist.

  • Ich wollte das hochstimmen, aber ich habe das versehentlich abgelehnt und es 2 Tage lang nicht bemerkt, und jetzt ist es gesperrt und ich kann es nicht ändern … aber das hat mir geholfen, w3c-Warnungen zu beheben, die mich störten, also trotzdem danke.

    – andygoestohollywood

    12. November 2013 um 9:20 Uhr

  • @andygoestohollywood: 🙂 Danke für die Erklärung, ich habe mich damals gefragt, warum jemand die Antwort abgelehnt hatte. Ich könnte die Antwort bearbeiten, damit Sie sie rückgängig machen können, aber ich sehe nichts Konstruktives, das geändert werden könnte, und ich möchte sie nicht auf die “aktive” Liste verschieben, nur um eine Abstimmung rückgängig zu machen. Ich bin froh, dass das geholfen hat!

    – TJ Crowder

    12. November 2013 um 9:50 Uhr

  • Für alle, die dies im laufenden Jahrzehnt sehen, File -> Advanced Save Options wurde vor einiger Zeit aus VSC entfernt. Tippen Sie unten rechts auf „UTF-8 mit Ursprung“, klicken Sie auf „Mit Codierung speichern“ und wählen Sie UTF-8 aus.

    – Gamma032

    5. März 2021 um 2:47 Uhr

Benutzer-Avatar
Höherer digitaler VW

So habe ich das behoben:

  1. Herunterladen und installieren Notepad++

  2. Öffnen Sie die Datei mit Notepad++

  3. Wählen Sie im Menü “Kodierung” und stellen Sie es auf “Kodierung in UTF-8 ohne BOM”

  4. Speichern Sie die Datei und die Stückliste ist verschwunden.

Für jemanden, der Visual Studio verwendet und 2018 den lästigen roten Punkt auf Bitbucket sieht, gehen Sie einfach zu Visual Studio zu „Datei“ -> „Datei.cshtml Speichern unter …“ und wählen Sie „Mit Codierung speichern …“ aus:

Speichern Sie mit Codierung

Dann wird ein Bildschirm angezeigt, auf dem Sie die Codierung ändern können. Versuchen Sie, in der Liste ganz nach unten zu schauen, bis Sie “Unicode (UTF-8 ohne Signatur) – Codepage 65001” sehen:

Geben Sie hier die Bildbeschreibung ein

Überschreiben Sie danach einfach Ihre Datei und laden Sie sie in Ihr Repo hoch, und die BOM ist verschwunden.

Ich hoffe es hilft. Löwe.

Für den intellij Ideeneditor gehen Sie einfach zu Datei und Dateieigenschaften
Geben Sie hier die Bildbeschreibung ein

Im Linux:

Öffnen Sie die Datei mit Geany.

Im Menü “Dokument“Häkchen entfernen”Schreiben Sie eine Unicode-Stückliste“.

Speichern die Datei.

BOM befindet sich manchmal INNERHALB des Textes, nicht am Anfang – wenn eine Datei zum Beispiel einige Zeit von PHP aus anderen Dateien zusammengesetzt wurde include_once(). Um es zu entfernen, löschen Sie den Bereich zwischen mindestens einem Zeichen vor BOM und mindestens einem Zeichen nach BOM (nur für den Fall). Die Position der Stückliste kann in den F12-Entwicklertools des Internet Explorers und wahrscheinlich Edge gefunden werden. Es wird visualisiert als schwarze Raute / Raute.

Visual Studio und WebMatrix können Dateien mit oder ohne Signatur (am Anfang) speichern.

BOM verursacht Fehler während der Validierung ( https://validator.w3.org/#validate_by_upload ) oder in Konsolen – kann ohne als verwaistes Element behandelt werden, wenn es anscheinend vorhanden ist !:

Fehler: Abweichender End-Tag-Kopf.

als zweites , wenn nur ein existiert und alles korrekt ist:

Fehler: Start-Tag-Body gesehen, aber ein Element des gleichen Typs war bereits geöffnet.

Und das gesamte Dokument kann ohne DOCTYPE gesehen werden, wenn BOM oder zwei BOMS die erste Zeile einnehmen und DOCTYPE in der zweiten Zeile steht, mit einer ähnlichen Meldung wie dieser:

Fehler: Nicht-Leerzeichen gefunden, ohne zuerst einen Dokumenttyp zu sehen. Erwartet zB .

Fehler: Dem Elementkopf fehlt eine erforderliche Instanz des Titels des untergeordneten Elements.

Fehler: Streunender Dokumenttyp.

Fehler: Streuendes Start-Tag-HTML.

Fehler: Verirrter Start-Tag-Kopf.

Fehler: Attributname für Elementmeta an dieser Stelle nicht zulässig.

Fehler: Elementmeta fehlt eines oder mehrere der folgenden Attribute: itemprop, property.

Fehler: Das Attribut http-equiv ist an dieser Stelle für das Element meta nicht zulässig.

Fehler: Elementmeta fehlt eines oder mehrere der folgenden Attribute: itemprop, property.

Fehler: Attributname für Elementmeta an dieser Stelle nicht zulässig.

Fehler: Elementmeta fehlt eines oder mehrere der folgenden Attribute: itemprop, property.

Fehler: Dem Elementlink fehlt die erforderliche Attribut-Eigenschaft.

Fehler: Attributname für Elementmeta an dieser Stelle nicht zulässig.

Fehler: Elementmeta fehlt eines oder mehrere der folgenden Attribute: itemprop, property.

Fehler: Attributname für Elementmeta an dieser Stelle nicht zulässig.

Fehler: Elementmeta fehlt eines oder mehrere der folgenden Attribute: itemprop, property.

Fehler: Attributname für Elementmeta an dieser Stelle nicht zulässig.

Fehler: Elementmeta fehlt eines oder mehrere der folgenden Attribute: itemprop, property.

Fehler: Elementtitel darf in diesem Kontext nicht als untergeordnetes Element von Elementkörper verwendet werden. (Unterdrückung weiterer Fehler aus diesem Teilbaum.)

Fehler: Elementstil als untergeordnetes Element von Elementkörper in diesem Kontext nicht zulässig. (Unterdrückung weiterer Fehler aus diesem Teilbaum.)

Fehler: Abweichender End-Tag-Kopf.

Fehler: Start-Tag-Body gesehen, aber ein Element des gleichen Typs war bereits geöffnet.

Schwerwiegender Fehler: Wiederherstellung nach letztem Fehler nicht möglich. Alle weiteren Fehler werden ignoriert.

( https://validator.w3.org/#validate_by_uri )

Und Nachrichtenstrom in der IE F12 Developer Tools-Konsole:

HTML1527: DOCTYPE erwartet. Erwägen Sie, einen gültigen HTML5-Dokumenttyp hinzuzufügen: ““.

HTML1502: Unerwarteter DOCTYPE. Es ist nur ein DOCTYPE erlaubt und er muss vor allen Elementen stehen.

HTML1513: Zusätzliches ““-Tag gefunden. Pro Dokument darf nur ein ““-Tag vorhanden sein.

HTML1503: Unerwartetes Start-Tag. HTML1512: Nicht übereinstimmendes End-Tag.

Alles verursacht durch eine Stückliste am Anfang. Und Debugger zeigt eine schwarze Raute in der ersten Zeile.

Dateien, die mit Signatur gespeichert, aber nicht von PHP zusammengestellt wurden, verursachen keine solchen Fehler und schwarze Rauten sind im IE-Debugger nicht sichtbar. Vielleicht transformiert PHP BOM irgendwie. Es scheint, dass die Haupt-PHP-Datei mit Signatur gespeichert werden muss, um dies zu sehen.

Diese seltsamen Zeichen treten am Anfang und/oder an den Rändern von Dateien auf, die mit include_once() zusammengeführt wurden, und sind nicht sichtbar, wenn Dateien zuvor ohne Signatur gespeichert wurden. Aus diesem Grund weist es auf die BOM-Beteiligung hin.

Ich habe das alles vorgestern bemerkt, als ich angefangen habe, meine Website auf HTML5 umzustellen und zu validieren.

BOM kann auch einen kleinen Einzug am Zeilenanfang erstellen. Zwei Dateien mit identischem Text, aber eine mit Einrückung.

1283570cookie-checkSo beheben Sie die Validierungswarnung „Byte-Order Mark found in UTF-8 File“.

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy