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

Java 如何避免将BOM表字符写入文件?,java,character-encoding,byte-order-mark,Java,Character Encoding,Byte Order Mark,我有一些写入文本文件的Java代码,将UTF-8指定为编码 现在,编写的一些文件在一开始就包含一个字符,这会给使用该文件的其他程序造成混乱 我无法更改其他程序的行为,也无法对外发布处理文件,因为它们可能位于另一台计算机上 有没有办法在不将此字符添加到起始位置的情况下写入文件?Java不应将此字符添加到UTF-8文件中,仅当写入UTF-16时(未指定UTF-16LE或UTF-16BE时)。所以,这个字符似乎已经存在于您输出的数据中。因此,只需检查要写入的第一个字符,如果它是BOM,则将其保留 如果

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

现在,编写的一些文件在一开始就包含一个
字符,这会给使用该文件的其他程序造成混乱

我无法更改其他程序的行为,也无法对外发布处理文件,因为它们可能位于另一台计算机上


有没有办法在不将此字符添加到起始位置的情况下写入文件?

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


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

您是对的,这首先是问题所在。它根本不是utf8。