使用java编写UTF-8文件
我正在尝试编写一个java实用程序,它只使用我明确写入文件的字符来写出一个UTF-8文件。我编写了下面的代码来实现这个技巧使用java编写UTF-8文件,java,utf-8,Java,Utf 8,我正在尝试编写一个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(S
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参数传递
我尝试写入的字符确实会写入到文件中,但我也会在它之前得到a,所以当我尝试写入µ时,我实际上得到了µ。有人知道如何纠正这一点,使我总是得到公正的评价吗
谢谢实现工作得很好:
µ
的UTF-8表示形式是c2 b5
。这正是写入文件的内容
检查UTF-8表
您的txt文件包含两个“符号”:
µ。
在其他情况下,应用程序将BOM解释为另一个符号,您可以看到µ
或其他内容
因此,您的文本文件是正常的。事实上,当使用不解释UTF8序列的查看器读取文本文件时,您得到的是单个文本的正确UTF8序列。所以请澄清你的“我真的得到…”看起来不错;检查此表:µ
是c2 b5
-确切地说是写入文件的内容。好的,谢谢大家。我不确定这两个符号是否是文件的问题,以便清除它,谢谢。