Heim > Java > javaLernprogramm > Hauptteil

Warum erscheint die Stücklistenmarkierung in der FileReader-Ausgabe beim Lesen von UTF-8-codierten Dateien?

DDD
Freigeben: 2024-11-16 08:09:03
Original
790 Leute haben es durchsucht

Why Does the BOM Marker Appear in FileReader Output When Reading UTF-8 Encoded Files?

Einbindung von BOM-Markern in die FileReader-Ausgabe

Bei Verwendung eines FileReaders zum Lesen einer UTF-8-codierten Datei mit einer BOM (Byte Order Mark ), kann die Stücklistenmarkierung versehentlich in der Ausgabezeichenfolge erscheinen. Dies liegt daran, dass die Stückliste als Teil der UTF-8-codierten Darstellung des Textes enthalten ist.

Um zu verstehen, warum dies geschieht, ist es wichtig zu beachten, dass es sich bei der Stückliste um ein Sonderzeichen oder eine Sonderzeichenfolge handelt, die das angibt Kodierung einer Textdatei. Im Fall von UTF-8 wird das BOM durch die Bytefolge EFBBBF dargestellt.

Wenn der FileReader die Datei liest, dekodiert er die Zeichen mithilfe der UTF-8-Kodierung. Das BOM ist jedoch kein gültiges Unicode-Zeichen und wird daher während des Dekodierungsvorgangs nicht übersprungen oder entfernt. Stattdessen ist es in der Zeichenfolge enthalten, die von der Methode readLine() zurückgegeben wird.

Um dieses Problem zu vermeiden, können Sie die folgenden Ansätze verwenden:

  • Trim the Stückliste vor der Dekodierung: Sie können die Methode substring() verwenden, um die ersten drei Zeichen aus der von readLine() zurückgegebenen Zeichenfolge zu entfernen. Dadurch wird die Stückliste entfernt, bevor sie in die Ausgabezeichenfolge aufgenommen wird.
  • Verwenden Sie einen Stücklisten-fähigen Decoder: Sie können einen Decoder verwenden, der speziell für die Verarbeitung von Stücklisten entwickelt wurde. Solche Decoder überspringen oder ignorieren die Stückliste automatisch, wenn sie den Text dekodieren.

Das obige ist der detaillierte Inhalt vonWarum erscheint die Stücklistenmarkierung in der FileReader-Ausgabe beim Lesen von UTF-8-codierten Dateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage