如何避免将BOM字符写入文件?

时间:2011-03-03 10:54:37

标签: java character-encoding byte-order-mark

我有一些写入文本文件的Java代码,将UTF-8指定为编码。

现在,一些编写的文件在一开始就包含一个<U+FEFF>字符,这会为使用该文件的其他程序造成混乱。

我无法更改其他程序的行为,并且我无法在外部对文件进行后期处理,因为它们可能位于另一台计算机上。

有没有办法编写文件而不将此字符添加到开头?

1 个答案:

答案 0 :(得分:3)

只有在编写UTF-16时(不指定UTF-16LE或UTF-16BE时),Java不应将此字符添加到UTF-8文件中。因此,您输出的数据中似乎已经存在此字符。因此,只需检查要写入的第一个字符,如果是BOM,请将其保留。

如果这没有帮助,您必须显示您的代码。