我已经研究了Unicode和UTF-8编码一段时间,我想我理解了它,所以希望这不是一个愚蠢的问题:
我有一个文件,其中包含一些CJK字符,并已保存为UTF-8。我安装了各种亚洲语言包,并且其他应用程序可以正确地呈现这些字符,所以我知道那部分是有效的。
在我的Java应用程序中,我按以下方式读取文件:
// Create objects
fis = new FileInputStream(new File("xyz.sgf"));
InputStreamReader is = new InputStreamReader(fis, Charset.forName("UTF-8"));
BufferedReader br = new BufferedReader(is);
// Read and display file contents
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
System.out.println(sb);
输出中显示的CJK字符为“???”。调用is.getEncoding()
确认它确实在使用UTF-8。我错过了什么步骤才能使字符正确显示?如果有差异,我是在使用Eclipse控制台查看输出。