Символы UTF-8 CJK не отображаются в Java

Я некоторое время читал о кодировке 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.

12
задан Twicetimes 11 May 2011 в 13:38
поделиться