• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

[Java] (Unicode?) Problem bei Terminal Ausgaben/Java einlesen

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Hey Apfeltalker,

ich habe da so ein Problemchen mit meinem Java Code.

Und zwar führe ich aus dem Code heraus einen Befehl aus der in der Shell ausgeführt werden soll - klappt auch wunderbar

Code:
Runtime runtimefortitle = Runtime.getRuntime();
String command = "date", line, source = "";

        try {
            Process process = runtimefortitle.exec(shellcommand);    
            
            BufferedReader is = new BufferedReader(new InputStreamReader(process.getInputStream()));
            while ((line = is.readLine()) != null) {
                target = target +line; 
            }
            
        } catch (IOException e) {
            e.printStackTrace();
        }
System.out.println(target);
Doch ein Problem gibt es wenn beispielsweise in der Rückgabe ein "Ä" drinn steckt bekomm ich leider kein Ä sondern ein: "√§" (in diesem Fall ein kleines "ä")

Ich bin mir sehr sicher das es am Unicode liegt und es wohl auch eine Eclipse Einstellung sein könnte.

Oder sollte ich im Java Code den String auf solche Zeichen überprüfen und ersetzen? Problem dabei das es viel zu viele sind da praktisch alles die Rückgabe sein kann.

Ich habe dieses Problem außerdem wenn ich meinen Source Code auf einem Debian Computer ansehe dort finde ich dann in Kommentaren die selben zeichen wieder (Wenn doch mal ein deutscher dazwischen hängt^^)

In diesem Fall ginge es aber um ein finniesches aber das spielt sicher keine Rolle.

Ich bitte um Rat! :)
 
Problem gefunden lag wie zu erwarten am Unicode

Wenn man den Reader benutzt hat er auf dem mac automatisch eine ISO Codierung aus welchem Grund auch immer man muss explizit sagen das er doch bitte UTF-8 nutzen möge und das Problem ist gegessen.

SampleCode:

Code:
BufferedReader is = new BufferedReader(new InputStreamReader(process.getInputStream(), "[B]UTF-8"[/B]));