Java - Problema de codificación

   
Vista:

Problema de codificación

Publicado por Juan (8 intervenciones) el 05/02/2016 10:09:51
Tengo dos aplicaciones que se comunican enviándose texto plano empleando sockets. Funcionan correctamente pero los caracteres especiales como las tildes o ñ no se muestran bien.

Lo extraño es que las dos aplicaciones utilizan codificación UTF-8. Utilizo Netbeans y en las propiedades del proyecto, pestaña Fuentes, veo que la codificación es UTF-8.

Os agradezco cualquier ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema de codificación

Publicado por Juan R. (94 intervenciones) el 05/02/2016 12:25:50
Buenas Juan

A veces en las aplicaciones, aunque usen UTF-8 (me ha pasado en otros lenguajes) no cogen los caracteres especiales correctamente, cuando es así, lo mejor que puedes hacer es subtituirlo por el código ASCII correspondiente.

Seguramente haya otras ideas que te vayan mejor, pero a mí se me ha ocurrido esto.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema de codificación

Publicado por Tom (912 intervenciones) el 05/02/2016 14:32:39
No tiene nada que ver la codificación de los fuentes con la codificación del texto que tú envíes o recibas por sockets (o leas de ficheros, dado el caso).

Así que, como es lógico, lo que tienes que revisar es la codificación de los datos que envías/recibes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema de codificación

Publicado por Juan (8 intervenciones) el 06/02/2016 17:28:13
Gracias por la respuesta.

¿Cómo puedo comprobar/modificar la codificación de los datos que envío y recibo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema de codificación

Publicado por Juan (8 intervenciones) el 11/02/2016 09:10:46
No consigo indicar que quiero trabajar con codificación en UTF-8.

Dado que la aplicación se comunica a través de sockets, indico tanto en el buffer de entrada como en el de salida que quiero trabajar con "UTF-8" y esto lo hago en las dos aplicaciones que comunico. El código es el siguiente:

1
2
3
bufferEntrada = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
 
bufferSalida = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8")), true);
Aún así, las tildes, por ejemplo, siguen sin verse correctamente.

Os agradezco cualquier ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar