Unicode BOM und FileReader
Beim Lesen einer UTF-8-codierten Datei mit einer Byte Order Mark (BOM) kann das Problem auftreten des Stücklistenmarkers, der zusammen mit dem Dateiinhalt ausgegeben wird. Dies liegt daran, dass Unicode eine Stückliste definiert, um die Endianness des codierten Texts anzugeben, die bei unsachgemäßer Handhabung als Zeichenfolge interpretiert werden kann.
In Ihrem Code-Snippet:
Um zu vermeiden, dass die Stücklistenmarkierung in die Ausgabe einbezogen wird :
String content = new String(Files.readAllBytes(Paths.get(file)), "UTF-8"));
if (tmp.length >= 3 && tmp[0] == (byte) 0xEF && tmp[1] == (byte) 0xBB && tmp[2] == (byte) 0xBF) { // Remove the BOM marker tmp = Arrays.copyOfRange(tmp, 3, tmp.length); }
Das obige ist der detaillierte Inhalt vonWie vermeide ich die Ausgabe der Stücklistenmarkierung beim Lesen einer UTF-8-codierten Datei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!