我已经阅读了一段时间的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);
Run Code Online (Sandbox Code Playgroud)
输出显示CJK字符为'???'.一个is.getEncoding()确认它肯定使用UTF-8的电话.我错过了让角色正确显示的步骤?如果它有所不同,我正在使用Eclipse控制台查看输出.