使用Java去除BOM字符

26

如何使用Java将字符串转换为与vi等效的形式?

:set nobomb
假设BOM来自我正在读取的文件。

6
Java中的字符串没有BOM...除非你从带有BOM的源读取。 - fge
2
这正是发生的事情。我正在阅读恰好带有这个标记的文件。 - James Raitsev
1
你至少知道使用了什么编码(UTF-8,UTF-16 LE/BE)吗? - fge
如果您有选择,只需使用Notepad++或SublimeText打开文件并重新保存而不带BOM。否则,您需要知道编码类型才能以编程方式完成此操作。 - Durandal
2个回答

74

3
"UTF8_BOM" 是一个错误的名称。BOM 与 UTF-8 没有任何关联。相反,UTF-8 不需要 BOM,而 UTF-16 可能需要(而 Microsoft 常常会习惯性地在使用 BOM 写入 UTF-16 文件,这些文件会被不良工具转换成带有 BOM 的 UTF-8)。 - Walter Tross
2
UTF-8 BOM 由3个字节组成,而不是2个。 - Krzysztof Tomaszewski

15

对于UTF-8,BOM的值为:0xEF、0xBB、0xBF


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接