Nemam pojma o Javi konkretno, ali se problem uvek svodi na: koje je kodiranje izvorne datoteke, koje je kodiranje podešeno na sistemu (za ulaz i izlaz na standardne tokove), i kako čitati i pisati datoteke sa određenim kodiranjem.
Pre svega, treba zaboraviti sva osmobitna kodiranja, i koristiti samo unikodska — posebno u izvornim datotekama. (Mada, obzirom da u ovom slučaju mašina nije pod tvojom kontrolom, možda ćeš morati da napraviš neki kompromis.)
Dobar članak, „Unicode for Programmers“, nalazi se ovde:
http://www.jorendorff.com/articles/unicode/index.html
Sadrži i odeljak o Javi, koji mi se čini da pokriva ono što tebi treba.