Por ejemplo, si el servicio al que realizas la peticion esta leyendo
contenidos de un archivo de texto producido en una máquina Windows,
entonces lo más probable es que en la lectura no se este realizando
con el código de characteres adecuado. Por ejemplo, pueden ester
leyendo el archivo como si estuviera codificado en UTF-8 pero quizá
deba ser leido en ISO-8859-1.
O puede ser que tú estes guardando la información recibida -que
pudiera ser correcta- y que quieras verificarla en "Notepad" sin haber
especificado al abrir el archivo que debe ser interpretado como UTF-8.
Todo depende de la fuente original de la cadena y de como se generó y
como se interpreta al leerla (que código de caracteres se utiliza al
grabarla y leerla)
Verifica en el debugger de tu IDE que la cadena recibida contiene los
caracteres esperados.
Si en el debugger aparece de manera correcta, entonces el problema
esta en tú aplicación.
Por el contrario, si en el debugger la cadena ya aparece alterada,
entonces el servicio al que estas llamando tiene un error y tendrías
que averiguar la fuente original de los datos.
2010/12/1 NachXs <nac...@gmail.com>:
> --
> www.JavaSOS.com
> Grupo de colaboración Java/J2ee para desarrolladores de habla hispana.
Si el sniffer te muestra el valor 209, entonces éste corresponde a la
Ñ en ISO-8859-1 o en UTF-16 si esta precedido por 00.
La Ñ en UTF-8 es representada por dos bytes cuyos valores
hexadecimales son C3 91
Entonces, el servicio al que estas llamando NO esta utilizando
codificacion UTF-8.
¿que es lo que recibes del webservice ? ¿utilizas SOAP? ¿REST?
Si utilizas SOAP, ¿cual es el tipo de dato que recibes segun el WSDL?
xsd:string ?
¿puedes describir que hace el servicio al que llamas? ¿tienes detalles
de su implementación? ¿puedes cambiar el código?
A mi parecer, el error esta en el servicio al que llamas, no en tu aplicación.
2010/12/2 NachXs <nac...@gmail.com>:
Saludos.
Hola Jorge, ante todo agradecerte el tiempo que te tomar para poder responder.
Mas o menos este es el detalle de todo el proceso
ESQUEMA Y ESPECIFICACION:
1. CLIENTE: Power Builder 10.5
2. WEBSERIVCE_01 : JAX-WS, SOAP
3. WEBSERVICE_02 : JAX-WS, SOAP
4. SERVICIO REMOTO: Aplicación conectada a través sockets
FLUJO
Entonces en base a lo que me indicas sobre el encoding el WS_02 debería tener el mismo encoding que el Servicio Remoto que en este caso sería la ISO-8859-1.
in = new BufferedReader(new InputStreamReader(socket.getInputStream()
, "ISO-8859-1"));
myString = in.readLine();
Si el código arriba funciona, entonces no tienes que hacer cambios al WS1.
2010/12/3 NachXs <nac...@gmail.com>: