Configuración del Encoding en OpenCms

16/11/2010       Sergio Raposo Vargas       Administración, Maquetación y diseño

En mi blog de HTML5 he comentado la importancia del encoding en nuestras páginas HTML. En OpenCms, el encoding es doblemente importante ya que no solo es el encoding en el que se le manda la información al navegador cliente, sino que es el encoding con el que se almacena la información.

La gestión del Encoding en OpenCms se puede hacer de forma genérica a todo OpenCms y de forma particular por cada sites o carpetas.
Para configurarlo por defecto en OpenCms tan solo tenemos que irnos al fichero de configuración opencms-system.xml y buscar la entrada:
<defaultcontentencoding>UTF-8</defaultcontentencoding>

En este caso podemos configurar el encoding por defecto de todo OpenCms.

Pero, una de las principales características que siempre he comentado que tiene OpenCms es su capacidad de ser multisites, es decir, que podemos tener más de un sitio web en el mismo OpenCms. Por lo tanto, parece razonable que si tenemos múltiples sites, cada uno pueda tener su propia configuración del Encoding, por ejemplo, queremos tener un sites usando ISO-8859-1.

Para ello tan solo debemos usar la propiedad: content-encoding. Si cambiamos esta propiedad en la carpeta de un sites todo los recursos que cuelgan de ella se almacenarán en el nuevo encoding. Si queréis hacer una prueba, coger un recurso, modificar la propiedad cambiándole el encoding, editáis el contenido, y luego le dais a ver el código de control, veréis como ya se habrá guardado con el nuevo encoding. Recordar que es necesario reeditar los contenidos para que coja la nueva configuración.

Queda la parte importante, prepara nuestras plantillas para que devuelva u nencoding u otro. En el caso por ejemplo de nuestro Template Saga, donde todos nuestros portales comparten templates, necesitamos preparar el documento html para que muestre siempre el encoding configurado en el sites, para ello podemos usar los taglibs de OpenCms:
<meta http-equiv="Content-Type" content="text/html; <cms:property name="content-encoding" default="ISO-8859-1"/>" />

Como veis en este ejemplo, por defecto se toma el encoding: ISO-8859-1 en lugar de UTF-8, pero esto ya es una configuración propia de cada caso particular.