【发布时间】:2011-10-28 15:18:15
【问题描述】:
在 Windows 控制台上显示特殊字符时遇到问题。
我写了以下代码:
public static void main(String[] args) throws IOException {
File newFile = new File("sampleInput.txt");
File newOutFile = new File("sampleOutput.txt");
FileReader read = new FileReader(newFile);
FileWriter write = new FileWriter(newOutFile);
PushbackReader reader = new PushbackReader(read);
int c;
while ((c = reader.read()) != -1)
{
write.write(c);
}
read.close();
write.close();
}
输出文件看起来与输入文件包含的特殊字符完全相同。即对于输入文件© Ø ŻƩ abcdefĦ 中的内容,输出文件包含完全相同的内容。但是当我添加行System.out.printf("%c", (char) c)时,控制台上的内容是:ÿþ©(包含更多字符但我无法在此处复制粘贴)。我确实读到问题可能出在 Windows 控制台字符集上,但无法找到解决方法。
考虑到输出媒体可以是未来的任何东西,我不想遇到任何类型的out 流的 Unicode 字符显示问题。
谁能帮我理解这个问题,我该如何解决?
【问题讨论】: