Java:无法保存为UTF-8

yel*_*lo3 0 java file-io utf-8 character-encoding bufferedwriter

我在java中有这行代码:

new BufferedWriter(new OutputStreamWriter(new FileOutputStream(name, append), "UTF-8"));
Run Code Online (Sandbox Code Playgroud)

这个编写器不写UTF-8文件,因为当我在notepad ++中打开它时,它说编码是:ANSI为UTF-8.我需要它是纯UTF-8.

你有什么建议吗?

Joa*_*uer 11

notepad ++(以及任何其他工具)只能猜测编码,它不会写入文件中的任何位置(或某些元数据中).

如果您编写的文本不包含ASCII范围之外的任何字符(即没有Unicode代码点的字符> 127),则使用ANSI编码的文件与UTF-8编码中的文件无法区分.


phi*_*hag 6

Notepad ++使用启发式算法来检测编码,即检测到的编码可能与真实的不同(这是猜测).

在这种情况下,Notepad ++是正确的,但错误标记编码.ANSI as UTF-8 纯UTF-8,没有BOM.