Bonsoir,
Je désire afficher le flux console dans un JTextPane.
Mon souci se situe au niveau de certain caractère qui sont affichés dans le Pane(ex: é).
Pièce jointe 19353
Merci d'avance.
Bonsoir,
Je désire afficher le flux console dans un JTextPane.
Mon souci se situe au niveau de certain caractère qui sont affichés dans le Pane(ex: é).
Pièce jointe 19353
Merci d'avance.
la console de windows est encodée dans un certain charset, celle de linux dans un autre et ainsi de suite.
Donc au niveau de ton inputstream il faut que tu spécifies le bon charset (sous windows je pencherais pour du cp1252 ou quelquechose dans ce style)
++
Ok merci ça fonctionne.
Pour info:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Runtime rt = Runtime.getRuntime(); p = rt.exec("ping 192.168.1.1"); java.io.BufferedReader br= new java.io.BufferedReader( new InputStreamReader(p.getInputStream(),"CP850"));
Salut,
Pour info ce problème ne se produit que sous Windows à ma connaissance, car par défautles Reader/Writer utilise un encodage dépendant du système et de la locale (propriété "file.encoding")...
Le problème c'est que Windows utilise deux encodages différents car il fait une distinction entre application graphique et application console, par exemple sur les PC d'europe de l'est :
- cp1252 pour les applications graphiques.
- cp850 pour les applications consoles.
Or sous Windows la propriété "file.encoding" vaut "cp1252" et il faut donc spécifier explicitement le charset pour "communiquer" avec une application console (voir pour écrire dans la console "proprement").
A ma connaissance sous tous les autres systèmes il n'y a pas de telle distinction selon le type de programme...
a++
PS : Lorsque tu utilises Runtime.exec(), attention à bien fermer les flux qui ne sont pas traités et à traiter les différents flux dans des threads séparés...
Partager