我使用此代码将一些中文字符写入文件:
String str = "询问需求";
byte[] byteArray = str.getBytes("UTF-8");
FileOutputStream fous = new FileOutputStream(f);
fous.write(byteArray);
fous.close();
之后的结果是询问需求
。问题是什么?
答案 0 :(得分:0)
编写文本数据时,请使用编写器,并指定要使用的编码。总是,也不例外。
所以在你的情况下:
Writer out = new OutputStreamWriter(new FileOutputStream(file), "utf-8");
out.write(str);
out.close();
另外,显然,请确保您的源代码已正确编码。例如,如果以UTF-16保存,但让javac默认为UTF-8,则字符串的内容将不符合您的想法。
最后,在使用外部编辑器打开文件内容时,请确保它知道文件的编码格式。如果它打开UTF-8编码文件(假设它是MacRoman),它将无法正确显示。