1Danke
ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
554
554
EMPFEHLEN
-
Hi...
ich habe mal wieder einen Kampf gegen Zeichensätze und weiß nicht weiter. Zu den möglicherweise relevanten Infos:
Windows XP SP3 - Deutsch
Ziel: Ein Netzlaufwerk mit Java verbinden und die Konsolenausgabe des Prozesses p zu bekommen. Hier einmal Code!
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
package system.process.io; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; public class TestProcessIO { private TestProcessIO() { } public static void main(String[] args) { Runtime rt = Runtime.getRuntime(); Process p; try { p = rt.exec("net use v: \\\\server.de\\langer\\link /user:ballablub unglaublichsicher"); } catch (IOException e) { p = null; e.printStackTrace(); } BufferedReader error; BufferedReader input; try { error = new BufferedReader(new InputStreamReader(p.getErrorStream(), "UTF-8")); input = new BufferedReader(new InputStreamReader(p.getInputStream(), "UTF-8")); } catch (UnsupportedEncodingException e) { error = null; input = null; e.printStackTrace(); } String line; /* print errorstream */ try { do { line = error.readLine(); if(line != null) System.out.println(line); } while (line != null); } catch (Exception e) { e.printStackTrace(); } /* print inputstream */ try { do { line = input.readLine(); if(line != null) System.out.println(line); } while (line != null); } catch (Exception e) { e.printStackTrace(); } } }
Nun erhalte ich die Ausgaben die ich möchte... allerdings werden alle Sonderzeichen mit Fragezeichen ersetzt ca. so:
Code :1 2 3
Systemfehler 85 aufgetreten. Der lokale Ger?tename wird bereits verwendet.
Das connecten funktioniert. Ich hab nur den ganzen Code gepostet, da ich sicher gehen wollte, dass der Zusammenhang klar wird.
Danke danke
und bye bye
Daniel
P.S.: Suchfunktion bereits verwendet jedoch keine funktionierende Lösung gefunden
-
24.11.10 15:07 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
Windows arbeitet nicht mit UTF-8, sondern mit cp1250.
Eventuell ist ja mit folgender Änderung getan:
Code java:1 2
error = new BufferedReader(new InputStreamReader(p.getErrorStream(), "cp1250")); input = new BufferedReader(new InputStreamReader(p.getInputStream(), "cp1250"));
Gruß
BKGeändert von Bratkartoffel (24.11.10 um 15:14 Uhr) Grund: Kommentar vor dem Source
Über eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Danke für die Hilfe, nun erhalte ich einmal ein „ und einemal wieder das ?
Code :1 2 3
Systemfehler 85 aufgetreten. Der lokale Ger„tename wird bereits verwendet.
Code :1
Der Befehl wurde erfolgreich ausgef?hrt.
Könnte es eventuell an etwas anderem noch liegen? Oder könnte mein deutsches XP SP 3 irgendwo einen anderen Zeichensatz verwenden?
-
24.11.10 16:37 #4
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
habe hier einen Artikel gefunden, der dein Problem am unteren Ende der Seite kurz anschneidet. Verwendest du Eclipse? Hast du es einmal direkt über die Konsole auch probiert?
Eventuell hilft dir ja der Codeausschnitt auf der Seite weiter.
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
24.11.10 16:59 #5
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Das ist nur teilweise richtig und hängt natürlich von den Einstellungen bzw. der Sprachversion ab.
Windows verwendet nämlich 3 Zeichensätze:
1. intern und für Unicode Anwendungen UTF-16
2. in ANSI Anwendungen eine ANSI Codepage (z.B. CP1252)
3. in der Konsole eine andere Codepage (z.B. CP850)
Man kann die verwendete Codepage in der Konsole mit dem Programm "chcp" anzeigen bzw. ändern.
Die besten Resultate erzielt man, wenn man eine Truetype Schriftart (z.B. Lucida Console) verwendet und die Codepage auf UTF-8 stellt (65001). Dabei können die meisten Zeichen angezeigt werden.Code :1 2 3 4
> chcp Active code page: 850 > chcp 65001 Active code page: 65001
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Vielen Dank!
cp850 hat funktioniert.
Ähnliche Themen
-
jQuery gibt mir im IE bei Width bzw. Height "auto" zurück
Von Thopeto im Forum Javascript & AjaxAntworten: 11Letzter Beitrag: 19.06.10, 20:09 -
preg-match gibt immer "0" zurück, auch wenn es "1" sein müsste
Von alexbot im Forum PHPAntworten: 7Letzter Beitrag: 09.04.10, 20:57 -
Welche Alternative gibt es "usemap" für Link an bestimmten Koordinaten?
Von thadre im Forum HTML & XHTMLAntworten: 3Letzter Beitrag: 07.06.09, 17:23 -
Winzip über konsole: wie drücke ich "automatisch Enter"?
Von janinejaeger im Forum Sonstige SprachenAntworten: 1Letzter Beitrag: 03.07.07, 18:37 -
[C++ - Konsole.] Ausgabe bearbeiten - oder "cin" mit Startwert
Von the snake II im Forum C/C++Antworten: 2Letzter Beitrag: 01.11.05, 11:53





Zitieren

Login





