Caracteresy bytes

luigikhan
30 de Diciembre del 2008
Hola buen día, mi problema es el siguiente:
Mediante una aplicación hecha en java j2SE se obtienen datos en formato hexadecimal, dichos datos se deben de convertir a caracteres US-ASCII para ser agregados a un string y posteriormente enviar ese string mediante un socket.
La aplicación que recibe el string no está hecha en java y no puede ser modificada; y requiere forzozamente que sean caracteres los que sean enviados en el string. Dichos caracteres deben corresponder exactamente con el valor hexadecimal.
Hago un cast a char para obtener los caracteres correspondientes de los valores hexadecimales
El problema es que los caracteres arriba de 127 no se pueden representar en el string debido a que en java no existen bytes sin signo, por lo que los primeros 127 caracteres se pueden agregar sin problemas al string pero los otros 127 restantes no. Java solo inserta signos de interrogación en donde debería de ir el caracter solicitado.
He intentado codificar el string y los bytes en diferentes modos, UTF, cp1252, us-ascii etc. y el único que arroja valores ascii es el cp1252 pero los caracteres generados, a pesar de que corresponden con c++ por ejemplo, cuyos caracteres se observan en esta tabla: http://personales.mundivia.es/papi/codigo_ascii.gif no son adecuados pues coloca caracteres arriba de 127 pero el valor requerido al parecer sigue estando equivocado.
¿Hay alguna manera de codificar esos 127 caracteres en el string de modo que sea 100% seguro que sus valores numéricos correspondan con los valores requeridos? Si en un byte solo se puede almacenar hasta el valor 127 y forzozamente requiero un solo byte por cada caracter con valores arriba de 127 ¿cómo puedo codificarlo?
Por lo que solicito ayuda para encontrar un modo de resolver este problema; pues no me encontrado la respuesta. Ya he intentado muchas maneras si éxito y no sé qué hacer.
De antemano gracias por la atención.