Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2010, 16:01
Avatar de lobo_php
lobo_php
 
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Exclamación Codificacion y conversion de caracteres a string

No estoy seguro si viene un hexadecimal o que demonios, lo que se es que me ha mamado gallo todo el dìa, compañeros, cuando un servidor telnet me devuelve una serie de texto extraño, por ejemplo [8 [M [17;H etc.

Bueno, yo estoy realizando un procedimiento el cual es:

Código java:
Ver original
  1. InputStream entrada = TelnetCliente.getInputStream();
  2.  
  3. byte[] buff = new byte[1024];
  4.  
  5. int ret_read = 0;
  6.  
  7. do{
  8. ret_read=entrada.read(buff,0,ret_read);
  9. byte[] utf8Bytes = aux.getBytes("UTF8");
  10. printBytes(utf8Bytes);
  11. }
  12. while(ret_read>=0);

Y el evento que lee los bytes:

Código java:
Ver original
  1. private void printBytes(byte[] array){
  2. String str = "";
  3. int aux_str=0;
  4. for(int k=0;k<array.length;k++){
  5. str=""+array[k];
  6. aux_str=Integer.parseInt(str);
  7. System.out.println(str);//si imprimo aux_str sale lo mismo
  8. //imprime en pantalla dos numeros, a veces tres o a veces negativos
  9. //tambien esta este metodo:
  10. System.out.print(AsciiHexToChar(aux_str));
  11. }
  12. }

El metodo que trata de imprimir algo leíble (pero no logra):

[HIGHLIGHT="java"]
private static char AsciiHexToChar(int leido){
return ((char) Integer.parseInt(""+leido,16));
}
[HIGHLIGHT]

pero lo que me imprime son caracteres aun mas raros: como:
' ´r' ´t
' ´IUYRUr
Cosas así.

Ah! otra cosa, cuando me salen los [8 [M [17;H etc. es por que hago esto:

Código java:
Ver original
  1. String roundTrip = new String(utf8Bytes,"UTF8");
  2. System.out.println(roundTrip);

esto lo hago justo despues de definir utf8Bytes, lo curioso es que sale digamos, cosas asi:

[8 [M [17;HInformacion [H [15 [34;2Util o lo que sea que se supone debería salir.

Entonces... alguien me puede ayudar a solucionar esto, es para mostrar lo que me responda el telnet, gracias.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175

Última edición por lobo_php; 18/03/2010 a las 16:03 Razón: [HIGHLIGHT="java"]