【问题标题】:Remove BOM from string in Java从Java中的字符串中删除BOM
【发布时间】:2015-01-06 23:24:18
【问题描述】:

我在文件中有字符串,其中包含 BOM(来自 UTF-8)。我想把这个字符串转成win-1251放到文件里。

我试图以这种方式从字符串中删除 BOM:

out.write(l.replace('\uFEFF','\0') + "\n");

但它不起作用。为什么?

这个字符串在win-1251文件中的输出:

?1,...SOME_TEXT_HERE

第一个“?”标志是非法的。

【问题讨论】:

    标签: java encoding utf-8 byte-order-mark


    【解决方案1】:

    您将 BOM 替换为 U+0000,而不是空字符串。您应该用空字符串替换 BOM,例如

    out.write(l.replace("\uFEFF", "") + "\n");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-04
      • 2017-07-15
      • 2014-12-03
      • 2011-08-07
      • 2016-01-04
      • 2014-03-20
      • 2015-05-13
      相关资源
      最近更新 更多