In a Java program, I spawn a new Process via ProcessBuilder.
args[0] = directory.getAbsolutePath() + File.separator + program;
ProcessBuilder pb = new ProcessBuilder(args);
pb.directory(directory);
final Process process = pb.start();
Then, I read the process standard output with a new Thread
new Thread() {
    public void run() {
        BufferedReader reader = new BufferedReader(
            new InputStreamReader(process.getInputStream()));
        String line = "";
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
    }
}.start();
However, when the process outputs non-ASCII characters (such as 'é'), the line has character '\uFFFD' instead.
What is the encoding in the InputStream returned by getInputStream (my platform is Windows in Europe)?
How can I change things so that line contains the expected data (i.e. '\u00E9' for 'é')?
Edit: I tried new InputStreamReader(...,"UTF-8"):
é becomes \uFFFD
 
     
     
     
     
     
     
     
     
    