Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA]Problema con sequenze di escape ricevute da server

    Ciao a tutti ragazzi! sono disperato entro stasera devo consegnare un progetto e mi sono accorto solo ora di un difetto...in pratica...mi connetto ad un server MUD e quando inizio a giocare al posto dei caratteri di escape usati per colorare le scritte mi appaiono dei caratteri strani e non so come cambiarli...mi basterebbe anche solo rimpiazzarli con uno spazio
    Eccone alcuni

    Û
    ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
    ÛÛÛ


    Vi ringrazio anticipatamente

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    96
    Sembra un problema di encoding, sicuro che usi lo stesso del server?

  3. #3
    Non so come controllare che sia la stessa codifica :S come posso fare? scusa per il ritardo ho visto ora il mex

  4. #4
    non ho capito bene la questione..
    stai scrivendo un client telnet e ti compaiono "quei caratteri strani" ?
    se e' cosi', quei caratteri sono codici di escape ansi che devi parsare.
    RFC Project - http://rfc.altervista.org
    Clessidra MUD - http://www.clessidra.it - telnet: mud.clessidra.it:4000

  5. #5
    Ciao innanzitutto grazie per la risposta questo è il codice che prende i dati dalla socket:

    //metodo run della classe UscitaDati
    public void run()
    {
    int i;
    try
    {
    //in un ciclo infinito legge dall'InputStream i dati che arrivano
    //se il valore è 255(IAC) richiama il metodo telnet leggendo i due dati successivi
    //altrimenti fa un cast portandolo a carattere e lo inserisce nel PrintStream
    while(true)
    {
    i = in.read();
    //se il flusso di dati è stato chiuso (-1) esci dal loop
    if(i == -1)
    break;
    if (i == 255)
    {
    int i1 = in.read();
    int i2 = in.read();
    telnet(i1,i2);
    }
    else
    { //qui ho cercato di togliere almeno il quadratino, la parentesi quadra e il ';'
    //ma non so proprio come parsare i caratteri di escape perchè mi legge un byte alla volta
    if((char)i ==''||(char)i =='['||(char)i == ';')
    os.print(" ");
    else
    os.print((char)i);
    os.flush();
    }
    }
    in.close();
    os.close();
    ot.close();
    System.exit(0);
    }
    catch(IOException e)
    {
    throw new RuntimeException(e.getMessage());
    }
    }

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 © 2025 vBulletin Solutions, Inc. All rights reserved.