这是我的代码,我正在尝试用↑和→写一个替换“Up”和“Right”的文本文件。问题是文本文件输出是:“††'”(这不是我想要的),控制台输出是“↑→”。
private static void print(String t){
File log = new File("a.txt");
String raw = t;
raw = raw.replaceAll("Up", " \u2191 "); //↑
raw = raw.replaceAll("Right", " \u2192 "); //→
try{
FileWriter fileWriter = new FileWriter(log, true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(raw + "\n");
System.out.println(raw + "\n")
bufferedWriter.close();
}catch(IOException e) {}
}
我认为这可能是编码错误,但我不知道如何修复它。
答案 0 :(得分:0)
首先,在编写文件之前,最好指定编码(您可能需要UTF-8
)。
private static void print(String t){
File log = new File("a.txt");
String raw = t;
raw = raw.replaceAll("Up", " \u2191 ");
raw = raw.replaceAll("Right", " \u2192 ");
try{
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(log), "UTF-8"));
bufferedWriter.write(raw + "\n");
System.out.println(raw + "\n");
bufferedWriter.close();
}catch(IOException e) {}
}
然后,您需要确保文件查看器也设置为UTF-8
。您的文件查看器似乎可能正在查看ANSI
中的文件。更改该设置取决于您的文件查看器 - 尝试使用Google搜索“[您的文件查看器名称] UTF-8”。