Итак, я пытаюсь заставить мою программу выводить текстовый файл со списком имен. У некоторых имен есть странные символы, например Å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"));
что у меня есть? Я где-то видел это в Интернете, и это работает, но мне просто интересно, есть ли более чистый способ.