Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Quelle sequenze di caratteri che vedi (ultima riga di output) sono le ben note sequenze di escape ANSI (ECMA-48 e altri).
    (http://en.wikipedia.org/w/index.php?...SI_escape_code)

    Sui Linux sono gestite nativamente dalla console. Su Windows no.

    Non conosco la JSch, ma puoi vedere questa ricerca: https://www.google.it/#q=jsch+ansi+escape
    E troverai molto probabilmente delle indicazioni utili.
    ciao andbin!

    in sostanza consigliano di usare replaceAll:
    codice:
    reply = reply.replaceAll("\\e\\[[\\d;]*[^\\d;]","");
    però c'è una cosa che non capisco.
    l'output, da quanto mi sembra, mi arriva da questo riga:
    codice:
    channel.setOutputStream(System.out);
    quindi in sostanza dovrei fare il replaceAll su un PrintStream giusto?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fermat Visualizza il messaggio
    l'output, da quanto mi sembra, mi arriva da questo riga:
    codice:
    channel.setOutputStream(System.out);
    quindi in sostanza dovrei fare il replaceAll su un PrintStream giusto?
    No. La questione è più complessa. Questa riga dice al channel di JSch di usare direttamente System.out. Quindi qualunque cosa faccia il channel, esso scriverà per conto suo su System.out e in sostanza vuol dire che tu non hai controllo di ciò che viene ricevuto e poi buttato lì sopra.

    Il problema comunque è anche un altro. Se da Windows ti connetti ad una macchina Linux ed essa manda in output (quindi JSch riceve) delle sequenze di escape e tu volessi/potessi buttarle via, la visualizzazione potrebbe non essere corretta. Finché si tratta di "colori", chissenefrega ma le sequenze di escape ECMA-48 contemplano anche cose più sofisticate del tipo "cancella una parte dello schermo" o "sposta il cursore una riga più sopra).

    Queste cose "dovresti" replicarle ma su Windows e solo ragionando in termini di standard-output non puoi farle.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.