【发布时间】:2014-07-11 11:15:21
【问题描述】:
我用行编写新文件,需要带有 BOM 的 utf-8。在我的代码中,我以最简单的方式添加 BOM:
printStream.print('\ufeff');
// print lines
在 Win7 中这个方法工作正常,但是当我在 Unix 中执行我的 jar 时,我看到“?”在 prolog 和“没有 bom 编码的 utf-8”中,我该如何解决?跨平台首选... 答案:
char[] c = {0xEF, 0xBB, 0xBF};
for(int i=0; i<3; i++){
printStream.write(c[i]);
}
【问题讨论】:
-
您是使用完全相同的工具查看文件还是使用特定于操作系统的查看器?如果特定于操作系统,Unix 上的查看器可能无法正确解释 bom。
-
同一个工具,记事本++。我在 Unix 上生成它,添加到存档并在 Windows 中打开(我只有 SCP 到 Unix 系统)
-
听起来BOM不是直接写的而是UTF-8编码的
标签: java byte-order-mark