Charset convertieren

Status
Nicht offen für weitere Antworten.
C

Chullain

Mitglied
Hallo,
ich habe folgendes Problem, und zwar setze ich über ein Java-Programm ein Prozess auf dem UNIX-Server ab, jedoch funktioniert dieser Befehl, den ich auf dem Unixsystem ausführe, nicht, weil da eine andere Codepage verwendet wird. Wie kann ich jetzt einem Prozess eine andere Codepage mitgeben, damit er den Befehl richtig interpretiert?


Hier ist in etwa meine Source:
Runtime unix = Runtime.getRuntime();
Process Befehl = unix.exec("Der ganze Befehl");
//Dann wird über ein InputStream das Ergebnis eingelesen

Da der Befehl, den ich auf dem UNIX-Server ausführen will, in einem String befindet, habe ich schon versucht den Befehl schon in dem String auf die entsprechende Codepage umzuwandeln, und dann den Prozess ausführen, aber das hat auch nicht geklappt,
hier auch davon die Source:

String BefehlEnc = new String(BefehlImString.getBytes("Cp037"));

Kann mir da einer helfen?Schon mal im voraus danke :)
 
M

mariopetr

Bekanntes Mitglied
imho sollte es recihen, per enviroment die richtige sprache einzustellen (LANG=xxxxx)
 
C

Chullain

Mitglied
Einstellung muss von Java aus geschehen, weil das eigentlich eine mainframe ist, und nicht so einfach einzustellen ist. So muss ich irgendwie versuchen dem Prozess den richtigen Charset mitzugeben. Der Hintergrund ist, dass ich unter UNIX den Befehl grep ausführe, falls er Dir bekannt ist, dieser durchsucht eine Datei nach einem bestimmten Eintrag, den ich vorher mache und gibt diejenige Zeile aus.
Also, wenn ich z.B. grep SuchBefehl Suchdatei.txt | grep SuchBefehl eingebe, dann kann er mit diesem Balken "|" nichts anfangen, und gibt dann Schrott aus...
 
M

mariopetr

Bekanntes Mitglied
ist schon klar, ich meinte die methode
public Process exec(String[] cmdarray,
String[] envp)
throws IOException
aus Runtime. also etwa
myRuntime.execute("find . -exec rm {} \;",new String[]{"LANG=de_DE@euro});
 
C

Chullain

Mitglied
das hilft mir schon mal weiter danke, nur was müsste ich für eine englische mainframe bei LANG= eintragen LANG=en_EN@euro etwa?
 
M

mariopetr

Bekanntes Mitglied
aeh, puh, keine ahnung. wenn du unter /usr/share/locale/locale.alias oder
/usr/local/share/locale/locale.alias was findest, dann hast du glueck. ansonsten ist wohl eher google oder die docu dein freund.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Anzeige

Neue Themen


Oben