Как заставить eclipse распечатать странные символы в Юникоде?

Итак, я пытаюсь заставить мою программу выводить текстовый файл со списком имен. У некоторых имен есть странные символы, например Åström.

Я взял этот список имен с веб-страницы, которая закодирована в "UTF-8", или, по крайней мере, я почти уверен, что это так, потому что источник страницы говорит

"meta http-Equiv =" Content-Type "content =" text / html; charset = UTF-8 "/"

Это то, что я пробовал до сих пор:

public static void write(List<String> list) throws IOException  {
        Writer out = new OutputStreamWriter(new FileOutputStream("test.txt"), "UTF-8");
        try {
            for (int i=0;i<list.size();i++) {
                try {
                    byte[] utf8Bytes = list.get(i).getBytes("UTF-8");
                    out.write(new String(utf8Bytes, "UTF-8"));
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }

                out.write(System.getProperty("line.separator"));

            }
        }
        finally {
        out.close();
        }
    }

, и я немного не понимаю, почему это не работает. Я получаю «Ã… ström», что очень странно.

Может кто-нибудь указать мне правильное направление? Спасибо!

И еще одно не относящееся к делу примечание: есть ли более простой способ записать новую строку в текстовый файл, кроме неуклюжего

out.write (System.getProperty ("line.separator"));

что у меня есть? Я где-то видел это в Интернете, и это работает, но мне просто интересно, есть ли более чистый способ.

7
задан wynnch 4 June 2011 в 00:05
поделиться