从Java中的字符串中删除BOM

nku*_*hta 8 java encoding byte-order-mark utf-8

我有文件中的字符串,其中包含BOM(来自UTF-8).我想将此字符串转换为win-1251并将其放入文件中.

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

out.write(l.replace('\uFEFF','\0') + "\n");
Run Code Online (Sandbox Code Playgroud)

但它不起作用.为什么?

在win-1251文件中输出此字符串:

?1,...SOME_TEXT_HERE
Run Code Online (Sandbox Code Playgroud)

第一个"?" 标志是非法的.

Jon*_*eet 16

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

out.write(l.replace("\uFEFF", "") + "\n");
Run Code Online (Sandbox Code Playgroud)