我正在尝试编写一个java实用程序,该实用程序只写出我明确写入该文件的字符的UTF-8文件。我编写了以下代码来完成这个技巧。
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class FileGenerator {
public static void main(String[] args) {
try {
char content = 0xb5;
String filename = "SPTestOutputFile.txt";
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(filename), "UTF-8"));
bw.write(content);
bw.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
}
}
我还将-Dfile.encoding = UTF-8作为VM参数传递。
我正在尝试编写的字符确实被写入文件,但我之前也得到了一个Â所以当我尝试写出μ时,我实际上得到了μ。有谁知道如何纠正这一点,以便我总是得到μ?
由于
答案 0 :(得分:3)
答案 1 :(得分:1)
您的txt文件包含两个“符号”:
如果您的应用程序(某些阅读器)正确识别编码,则只能看到µ
。
在其他情况下,应用程序将BOM解释为另一个符号,您可以看到µ
或其他内容。
所以你的文本文件没问题。