2015-01-05 6 views
1

Я пытаюсь вызвать программу 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 кодировка кодировки, но я не знаю, где именно их установить.

ответ