Rafał Rybacki

Rafał Rybacki Java Developer

Temat: Problem z kodowaniem

Witam

W mojej aplikacji uruchamiam zewnętrzny proces i próbuje wyświetlić w JTextArea strumień wejściowy tego procesu. Niestety pomimo usilnych prób i kombinowania ciągle nie potrafię wyświetlić polskich znaków.
Czy ktoś z użytkowników implementował podobną funkcjonalność z lepszym rezultatem? Poniżej zamieszczam kod

 
StringBuilder cmd = new StringBuilder();
cmd.append("cmd.exe /U /C "); // /U - unicode, /C - zakończ po wykonaniu komendy
cmd.append( pakSkanField.getText() ); //uruchomienie aplikacji
cmd.append( " \"" + dirField.getText()+"\""); //jeden z parametrów uruchamianej aplikacji
System.out.println(cmd.toString());

try {
Process process = runtime.exec(cmd.toString() );
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream(),"Windows-1250")); //tutaj umieszczałem już m.in UTF-8, Windows-1250, ISO-8859-2, itd
StringBuffer sb = new StringBuffer(cmd+"\n");
String line = "";
while ((line = input.readLine())!=null){
sb.append(line);
}
originalLog = sb.toString();
logArea.setText(originalLog);
System.out.println(sb.toString());
} catch (IOException ex) {
Logger.getLogger(PakSkanDialog.class.getName()).log(Level.SEVERE, null, ex);
}


Ponadto próbowałem dekodować otrzymany string w oparciu o każdą dostępną tablicę Charset. Dla żadnej z nich nie wyświetlone zostały polskie znaki :/

Problem rozwiązany - domyślnie stosowaną stroną kodową w cmd jest IBM852. Wystarczyło podać nazwę jako parametr InputStreamReadera i już śmiga :)Rafał Rybacki edytował(a) ten post dnia 29.01.10 o godzinie 13:56
Aleksander Lech

Aleksander Lech Architekt rozwiązań

Temat: Problem z kodowaniem

Może System.setProperty("file.encoding", "UTF-8") pomoże. To chyba nie tylko odczytu plików się tyczy.

Następna dyskusja:

Problem z Web Service




Wyślij zaproszenie do