Unicode BOM dan FileReader
Apabila membaca fail yang dikodkan UTF-8 dengan Tanda Pesanan Bait (BOM), anda mungkin menghadapi masalah ini daripada penanda BOM yang dikeluarkan bersama dengan kandungan fail. Ini berlaku kerana Unicode mentakrifkan BOM untuk menentukan endian teks yang dikodkan, yang boleh ditafsirkan sebagai jujukan aksara jika tidak dikendalikan dengan betul.
Dalam coretan kod anda:
Untuk mengelakkan penanda BOM daripada disertakan dalam output :
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); }
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Mengeluarkan Penanda BOM Semasa Membaca Fail Berkod UTF-8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!