我用行编写新文件,需要带有BOM的utf-8。在我的代码中,我以最简单的方式添加BOM:
printStream.print('\ufeff');
// print lines
在Win7中,这种方法运行正常,但是当我在Unix中执行我的jar时,我看到"?"在prolog和" utf-8没有bom编码",我该如何解决?跨平台首选...... 解答:
char[] c = {0xEF, 0xBB, 0xBF};
for(int i=0; i<3; i++){
printStream.write(c[i]);
}
答案 0 :(得分:2)
我不确定printStream.print('\ufeff');
是写utf-8 bom的正确方法。您可以尝试直接写入EF BB BF
字节。
示例:
char[] bom = { 0xEF, 0xBB, 0xBF };
//or byte[] bom= { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF };
printStream.write( bom ); //directly write the bytes