Character Encoding en Tomcat y GlassFish

(!) Información Revisada/Actualizada a Fecha: 30/03/2022

¿Necesitas personalizar la codificación que viene por defecto en el servidor de aplicaciones JAVA?

Por ejemplo, vamos a imaginar que necesitas setear UTF-8 como la codificación de caracteres que usa por defecto Apache Tomcat o GlassFish/Payara.

Codificación de caracteres en Apache Tomcat


Si estás utilizando Apache Tomcat la codificación de caracteres la puedes ajustar desde el archivo server.xml utilizando el parámetro URIEncoding (el archivo server.xml está ubicado en el directorio /appservers/apache-tomcat-X/conf/server.xml).

Es muy importante que antes de editar el archivo de configuración hagas una copia de seguridad; así podrás restablecerlo si algún cambio crea conflictos con el servidor de aplicaciones.

En el archivo server.xml debes localizar los bloques relativos a los conectores de Tomcat y añadir justo debajo de la línea «<Connector» el parametro URIEncoding seguido de la codificación que quieres utilizar; en este ejemplo deberíamos añadir la línea URIEncoding="UTF-8" puesto que vamos a establecer UTF-8 como codificación por defecto.

Debe quedar exactamente así:

<Connector       
     URIEncoding="UTF-8"       
     port="XXXX"       
     redirectPort="XXXX"       
     .................       
     ......../> 

(!) Tan sólo añade la línea relativa al URIEncoding; sin modificar nada más.

Una vez modificado el archivo server.xml reinicia Apache Tomcat desde el panel de control AppManager para aplicar los cambios.

Te facilitamos información adicional sobre URIEncoding:

Codificación de caracteres en GlassFish/Payara


Si utilizas el servidor de aplicaciones GlassFish o Payara y necesitas cambiar la codificación de caracteres que viene definida por defecto, debes editar el archivo glassfish-web.xml ubicado en el directorio de tu aplicación: /appservers/glassfish-X/domains/domain1/applications/tu-app/WEB-INF/

Tan sólo debes añadir la etiqueta «parameter-encoding» antes de </glassfish-web-app>, es decir, debería quedar así:

     <parameter-encoding default-charset="UTF-8" />
< /glassfish-web-app>

Por último tan sólo tienes que reiniciar tu JVM desde el panel de control AppManager para aplicar los cambios.