So, the default character encoding on your windows machine is probably windows-1252 (a superset of latin-1). That means that if you don't specify the charset when reading in the file, Java will default to your system default and get it right.
On your Linux machine, your default charset is probably UTF-8. That means that if you don't not explicitly specify a charset while reading a file, it will default to UTF-8 . . . which, in this case, is wrong.
You didn't post how you're reading in your file, but for example:
InputStreamReader isr = new InputStreamReader(file, "UTF-8");
This would create an input stream reader for reading a file formatted in UTF-8.