Configurar Zend Studio para proyectos PHP en UTF-8

Hace relativamente poco que he empezado a usar Zend Studio como IDE para PHP y uno de los primeros pequeños problemas con los que me he encontrado ha sido con la codificación de caracteres de los proyectos.

Aunque cambiar el charset por defecto de Zend Studio (CP1252) no presenta mayor dificultad que tocar una opción de menú, la cosa se complica si quieres poder trabajar con proyectos que utilizan diferente codificación y, además, que la documentación se genere correctamente para todos ellos.

Después de hacer algunas pruebas creo que he encontrado la configuración idónea para poder trabajar correctamente con todos los proyectos, estableciendo UTF-8 como codificación por defecto.

1. Configurar codificación de los proyectos

Lo primero que debemos hacer es cambiar la codificación de los proyectos a UTF-8, y para ello tenemos dos opciones:

a) Configuración a nivel de entorno de trabajo (recomendado)

A través de esta opción, indicamos a Zend Studio que la codificación por defecto de nuestro entorno de trabajo es UTF-8, por lo que todos los nuevos proyectos que se creen tendrán este charset. El cambio no afectará a los proyectos que ya tengamos creados, que mantendrán su codificación original. Es la opción recomendada.

Para realizar el cambio accedemos a Window > Preferences > General > Workspace y en el apartado Text File Encoding seleccionamos UTF-8 en el desplegable Other.

b) Configuración a nivel de proyecto

Si, por contra, queremos mantener la codificación por defecto de Zend Studio (CP1252), tenemos la opción de cambiar la codificación a nivel proyecto, de forma individual.

Para ello accedemos a las propiedades del proyecto (Botón derecho sobre el proyecto > Properties) y veremos que en el apartado Text file encoding tenemos dos opciones: mantener la configuración por defecto del entorno de trabajo, o especificar una nueva para ese proyecto (en la que seleccionaríamos UTF-8 del desplegable Other).

Sea como sea, una cuestión MUY IMPORTANTE es NO TOCAR la codificación a través de la opción Content Types de las preferencias de la aplicación. Al tocar esta opción, estamos indicando que todos los archivos con determinada extensión cambien su codificación, con lo provocaremos que los archivos creados con una codificación diferente a la que hemos establecido se visualicen de manera errónea.

2. Configurar  documentos HTML y CSS

Aunque hayamos cambiado la codificación a UTF-8 a nivel de entorno de trabajo o de proyecto, los nuevos archivos HTML creados desde Zend Studio estarán en ISO-8859-1.

Para establecer que los nuevos documentos HTML y CSS estén codificados en UTF-8, deberemos acceder a Window > Preferences > Web > HTML Files o CSS Files y, seleccionaremos ISO 10646/Unicode (UTF-8) en el selector Encoding del apartado Creating files.

Ahora, al crear un nuevo documento HTML o CSS , veremos que aparece lo siguiente en sus respectivas cabeceras:

HTML:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

CSS:

@CHARSET "UTF-8";

3. Configurar PHPDocumentor

Aún habiendo realizado correctamente los pasos anteriores, veremos que si generamos la documentación de un proyecto UTF-8 usando PHPDoc, ésta se visualizará de forma errónea (acentos, tildes…).

Esto es debido a que las plantillas de PHPDocumentor están configuradas para codificación iso-8859-1, tal y como se puede ver en los archivos .tpl de, por ejemplo, la plantilla HTML:frames:default

<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
<?xml version="1.0"  encoding="iso-8859-1"?>

Para solucionar el problema, deberíamos crear una nueva plantilla -partiendo de una existente- substituyendo la cadena iso-8859-1 por UTF-8. El problema es que esta nueva plantilla generada no será mostrada por el asistente en el momento de generar la documentación, a causa de un error documentado de Zend Studio.

Aún así, podemos hacer lo siguiente:

1. Accedemos a la ruta donde se encuentran las plantillas HTML:frames de PHPDocumentor:

C:\Program Files\Zend\Zend Studio - 7.0.1\plugins\com.zend.php.phpdocumentor_7.0.0.v20090826-1200\Resources\phpdocumentor\phpDocumentor\Converters\HTML\frames\templates

2. Hacemos una copia del directorio default y le llamamos default-iso8859 (por ejemplo).

3. Con la ayuda de un editor de texto (por ejemplo: Notepad++), substituimos la cadena iso-8859-1 por UTF-8 en todos los archivos .tpl del directorio default.

Ahora, por defecto, la documentación de nuestros proyectos UTF-8 se generará correctamente y siempre dispondremos de la plantilla original en caso de necesitar documentar un proyecto antiguo.

Tags: ,


5 comentarios y 0 referencias para “Configurar Zend Studio para proyectos PHP en UTF-8”

  1. academo 17 de abril de 2010 a las 15:40 #

    Muchas gracias por el tutorial, recién acabo de migrar de Zend Studio 5 a Zend Studio 7.1.2, con Zend 5 tenia dolores de cabeza al momento de usar carácteres latinos, con 7.1.2 estos problemas parecen haberse acabado! :D (lo lamentable es que los archivos que tenian tilde creado con el 5, no se visualizan bien en el 7.1.2, habrá que revizar codigo…)

  2. Jose 15 de junio de 2010 a las 14:18 #

    Está muy bien el artículo, pero esto no soluciona el problema cuando se crean archivos php. La codificación es ANSI.

    Me pregunto si alguieb sabe como cambiar la codificación del php a UTF-8 without bom??? ( Nota: No la puedo cambiar con el Notepad++ )

    Grácias

  3. checho 15 de junio de 2010 a las 14:37 #

    @Jose Acabo de comprobar que al crear un archivo .php desde Zend Studio, con la configuración del artículo, su codificación es “UTF-8 sin BOM“.

    De hecho, acabo de hacer la prueba creando un fichero .php en un proyecto que tengo activo, y abriendo posteriormente el archivo con Notepad++ (donde, en el menú “Formato”, me indica la codificación).

    Para cambiar la codificación de un fichero con Notepad++, deberías ir al menú “Formato” y seleccionar una de las opciones precedidas por la palabra “CONVERTIR”.

  4. dago 21 de agosto de 2010 a las 14:04 #

    hola!! ..como puedo configurar zend studio para trabajar con zend server ce???

    no puedo ver el codigo php de mi página, me dice que no se encuentra (404 – Not Found)

  5. Antonio 3 de mayo de 2012 a las 21:53 #

    Your comment is awaiting moderation.

    hola,

    tengo un problema que no se ve los caracter cirilico en nuestra web, esta en PHP y MYSQL, la persona que nos hizo la web a desaparecido y ahora no se por donde tirar con esto, alguien me podria ayudar y le digo cual son los motores que mueve esto mirar en http://toroalbala.com/comun.php?seccion=vinos arriba bandeja rusa gracias, os prometo que os regalare unos vinos bueno

Escribe un comentario