Problemas con acentos en mi aplicación web Java

Hola javeros!

Escribo mi problema, esperando puedan ayudarme, y gracias de antemano. Tengo una aplicación web, la cuál al ser desplegada en mi navegador, me muestra caracteres extraños en las palábras con acentos, como por ejemplo " Inform�tica" en lugar de "Informática". Los archivos JSP, tienen esta etiqueta <%@page contentType="text/html" pageEncoding="UTF-8"%>, y mi archivo web.xml tiene esta etiqueta <?xml version="1.0" encoding="UTF-8"?>, se supone que los parámetros de estas etiquetas en ambos archivos deberían codificar bien los caracteres como el acento.

He debugueado en algunas partes del código y he observado que el contenido dinámico de la página (lo que viene de la Base de Datos), viene con los acentos como debe ser, pero el contenido estático de la página, como un footer por ejemplo, aunque en el código HTML dentro del JSP está escrito como "Telefon&iacute" por ejemplo, me muestra en el navegador "Telefon�a". ¿Alguien tiene una sugerencia...?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de CuicaJavier

http://dtrinf.wordpress.com/2

Imagen de CuicaJavier

http://www.javamexico.org/for

Imagen de marielyen

Me parece mas correcto dejar la codificación a...

Hola, gracias por la info.

Te agradezco ambos comentarios, aunque me parece mas correcto dejar el trabajo al encoding, como lo comenta ezamudio en la segunda liga que me sugeriste. Allí menciona algo sobre verificar la configuración de la JVM, que tenga un encodign equivalente la JVM como la BD pero no tengo idea de como checar lo de la JVM. ¿Alguien puede auxiliarme?

Imagen de ezamudio

encoding del archivo

Aunque tu archivo indica que está en UTF-8 es muy probable que realmente usaste otro encoding. Ese tag de XML es una pista para los lectores pero no significa que mágicamente tu archivo se guarda en UTF-8. Revisa que realmente lo guardaste usando UTF-8; esto es independiente del encoding que use la JVM, que internamente siempre es UTF-16 pero para leer y escribir a streams se puede modificar con la propiedad de sistema file.encoding.

Imagen de marielyen

El web.xml sólo tiene la tag <?xml version="1.0" encoding="UTF-8

En algunos post en la web se habla de estas etiquetas en el web.xml:

encoding UTF-8

¿Son estas las etiquetas que realizan el trabajo del encodign dentro del web.xml? Entiendo con tu comentario anterior que unicamente se indica al archivo que está el UTF-8, pero no hay una eitqueta que realice esta tarea.

Indica completo el header del JSP

Aquí está el header de JSP para manejar el encoding. Verifica las diferencias entre lo que publiqué y como lo tienes, nota también que se define la codificacion para el contenido estatico en la página y tambien el contenido dinámico.

el contenido estático sería
 

el contenido dinamico sería (tomando en cuenta que variable=blá ña)
 

Si aún así tienes broncas al pintar el contenido dinamico, intenta sobreescribir en tu controller el valor que regresas  . Si la bronca se soluciona entonces sabes que estás manejando mal el encoding dentro de tu aplicación.

Cuando las broncas se presentan dentro del contenido estático, generalmente es porque el fuente lo tienen en otra codificación. Los IDE's son los principales culpables de esto (ajá si como no!)... si es el caso, basta con ajustar el encoding de los archivos.

Tu archivo puede ser salvado

La mayoria de los editores de texto te permiten especificar el encoding de tu archivo, lo que dice ezamudio es que quiza a tu archivo este guardado de otra forma.

Intenta salvarlo com UTF-8

@CuicaJavierEn realidad

@CuicaJavier

En realidad siempre has podido, lo que pasa es que la consola de windows no tiene el encoding apropiado.

Si se especifica ( con el comando chcp y el encoding 1252 ) salen los acentos y ñ's de forma "normal", sin tener que hacer el mapeo que pones en tu blog.

Ve esta sesion:

1. Abrir el archivo en notepad ( que muestra los acentos y ñ's )
2. Mostrar el archivo en la consola con   Sale mal
3. Ejecutarlo se muestra tambien mal
4. Pero si se redirige la salida a un archivo (output.txt) se ve correctamente.
5. Al cambiar el encoding a la consola todo funciona como se espera

Imagen de arterzatij

Yo tuve el mismo problema y

Yo tuve el mismo problema y para no batallar mucho y acabar rapido opte por la solucion que te mencionan en las ligas anteriores XD...

Y pues funciona y despues te acostumbras ademas es texto estatico. Si fuera de la DB ahi no deberias tener problemas...

Imagen de CuicaJavier

OscarRyz

Gracias por ayudar a las personas que recién empiezan en Java.
PD: Solo para aclarar ese no es mi blog, solo trataba de ayudar :)