Ver Mensaje Individual
  #8 (permalink)  
Antiguo 26/08/2008, 21:58
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: length en un solo byte

Ok, voy a tratar de ser breve....

La función intToByteArray() que bajaste, no se si te genera 4 o 1 byte.
En un mensaje anteior escribiste que tenía que ser específicamente 1 solo byte.

La idea de usar ByteArrayOutputStream() era eliminar el String.getBytes().
Lo que quiero darte a entender es simplemente que no puedes confiar que String.getBytes() te va a funcionar siempre igual en todos los sistemas con diferentes codificaciones de caracteres (windows-1252, utf-8, etc).

System.out.println(java.nio.charset.Charset.defaul tCharset().displayName());

Lo más sencillo para asegurarte qué datos estás enviando al servidor es escribirlo en un archivo binario en el disco; abrirlo y comprobar con un editor hexadecimal, que fué lo generado realmente.

java.io.FileOutputStream o = new java.io.FileOutputStream("archive.bin");
o1.write(unicode.getBytes());

La función getBytes() va a convertir de UTF-16 a la codificación que tengas por defecto, como por ejemplo windows-1252. Si el servidor que estas conectado espera ANSI o ASCII posiblemente debería funcionar bien. Pero si el tu tienes otra codificación de caracteres o el servidor espera otra cosa, entonces no va a funcionar.

Espero haber sido de alguna ayuda,
Saludos.