So I’m trying to make my program output a text file with a list of names. Some of the names have weird characters, such as Åström.
I have grabbed these list of names from a webpage that is encoded in “UTF-8”, or at least I’m pretty sure it does because the page source says
” meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ / “
This is what I’ve tried so far:
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();
}
}
and I’m a little confused as to why it’s not working. The output I get is “Ã…ström”, which is very weird.
Can someone please point me in the right direction? Thanks!
And on another unrelated note, is there an easier way to write a new line to a text file besides the clunky
out.write(System.getProperty(“line.separator”));
that I have? I saw that online somewhere and it works, but I was just wondering if there was a cleaner way.
Set your
Eclipse > Preferences > General > Workspace > Text file encodingto UTF-8.