带Bom的UTF8文件头三个字节:
(head[0] == -17 && head[1] == -69 && head[2] == -65)
不带Bom:
(head[0] == 49 && head[1] == 50 && head[2] == 51)
Java读取文件移除Bom方式1:
FileInputStream fis = new FileInputStream(file);
UnicodeReader ur = new UnicodeReader(fis, "utf-8");
BufferedReader br = new BufferedReader(ur);
方式2:
byte[] nbs = new byte[code.bytes.length - 3]
System.arraycopy(code.bytes, 3, nbs, 0, nbs.length)
code = new String(nbs, "UTF-8")

本文详细介绍了如何判断及去除UTF-8编码文件中的BOM(字节顺序标记),并提供了两种Java实现方法。一种是通过UnicodeReader读取文件,另一种则是直接操作字节数组来移除BOM。
249

被折叠的 条评论
为什么被折叠?



