Я пытаюсь вызвать программу linux aspell для проверки орфографии pt_BR в Java с использованием Java Runtime.getRuntime(). Exec(). Проблема в том, что, похоже, что-то размахивает кодировкой ввода/вывода. некоторое входное слово разделяется на два слова в позиции буквенного обозначения, а вывод отображается с буквой для букв акцента. Я вижу, что aspell может правильно проверить pt_BR в режиме конвейера команд. Код для установки Aspell следующая:Проблема с кодировкой с вызовом программы aspell с использованием Java Runtime.getRuntime(). Exec
String[] aspellCommand = new String[4];
aspellCommand[0] = "aspell";
aspellCommand[1] = "-a";
aspellCommand[2] = "--keymapping=ispell";
aspellCommand[3] = "--lang=pt_BR";
String[] envArray = new String[0];
process = Runtime.getRuntime().exec(aspellCommand, envArray);
System.out.println(Charset.defaultCharset()); /utf-8
InputStreamReader ir = new InputStreamReader(process.getInputStream(), "utf-8");
OutputStreamWriter or = new OutputStreamWriter(process.getOutputStream(), "utf-8");
aspellOutputStream = new BufferedReader(ir);
aspellInputStream = new PrintWriter(or,true);
System.out.println(ir.getEncoding()); /utf-8
System.out.println(or.getEncoding()); /utf-8
код кормить вход в Aspell:
aspellInputStream.println(misSpelledWord);
код для чтения из Aspell:
String line = aspellOutputStream.readLine();
Я подозреваю, что что-то не так с IO кодировка кодировки, но я не знаю, где именно их установить.