Unicode?

Caruso_Nix

Mitglied
hallo,
ich lasse Dateien ausführen und die Ausgaben in eine Datei umlenken. Leider werden die Umlaute etc nicht korrekt dargestellt. Welchen Fehler habe ich gemacht?
command ist cmd.exe /C
Code:
   final Process p = Runtime.getRuntime().exec(command + file);
   ...
   StringBuffer sb = new StringBuffer();
   BuffererReader br = new 
  	 BufferedReader(new InputStreamReader(p.getInputStream()));
   BufferedReader br_error = new	 
   	   BufferedReader(newInputStreamReader(p.getErrorStream()));
 ...
 
 RandomAccessFile file = new RandomAccessFile(fileName, "rw"); 		
 Writer out = new OutputStreamWriter
 	 (new FileOutputStream(file.getFD()), "UTF-8"); 
 file.seek(file.length());
 out.append(sb.toString()+System.getProperty("line.separator"));
 out.flush();
 file.close();
 
Zuletzt bearbeitet:
nein, leider bringt das auch nichts. :(
das muss schon im Bereich davor irgendwie nicht richtig sein.
da stimmt was mit den BufferReader nicht.
Code:
BuffererReader br = new BufferedReader
      	(new InputStreamReader(p.getInputStream(),"UTF-8"));
     // Ausgabestrom zwischenspeichern
     while ((line = br.readLine()) != null)
     {
      System.out.println(line); --> hier schon keine Umlaute!
     }
Andere Ideen
Ausserdem brauche ich die Sonderzeichen, da das java-programm auf verschiedenen Betriebssystemen (unterschiedliche Sprachen) laufen soll.
 
Zuletzt bearbeitet:
Dein Problem liegt warscheinlich am Mischmasch zwischen Reader (Unicode) und InputStream (byte-basiert).

Dein RandomAccessFile bietet Input- und OutputStream, genau wie Dein Process-Objekt.
"Verheirate" beide miteinander und es sollte funktionieren.
 
Re: Unicode? - lösung

man hat mir folgendes geschrieben:
Die DOS-Konsole arbeitet mit "Cp850"
windows dagegen (und die nimmt System.getProperty("file.encoding");) verwendet Cp1250

tja, das war das Problem!
caruso
 
Zurück