Zend Studio y el símbolo de euro para PHPExcel

El que esté familiarizado con la librería de PHP para generar archivos Excel de codeplex (PHPExcel) sabe que todos los textos para que esta librería funcione correctamente deben estar en UTF-8. El problema viene cuando queremos utilizar caracteres especiales como el símbolo del euro y nuestro código está en otra codificación.

Por ejemplo los proyectos en Zend Studio por defecto están en CP1252 (la mayoría de las veces se puede confundir con el estándar ISO 8859-15 pero no es lo mismo) con lo cual si queremos convertir a UTF-8 un texto sabiendo que puede contener el símbolo de euro (€) no vale con utilizar las funciones utf8_encode o utf8_decode porque ambas codifican o decodifican entre ISO 8859-1 y UTF-8.

¿Qué opciones tenemos para codificar textos en Windows-1252 a UTF-8?

Existen varias herramientas ninguna de ella exenta de tener que instalar librerías adicionales aunque son bastante sencillas y universales.

La primera opción es mb_convert_encoding y la segunda es iconv.

$str = mb_convert_encoding($str, "UTF-8", "CP1252");

$str = iconv("UTF-8", "CP1252", $text);

Lo más importante que debemos de saber siempre es en qué codificación esta nuestro texto y a cual queremos convertirlo.

Nota: la función mb_detect_encoding si el texto está en CP1252 devuelve un valor vacío.

¿En que se diferencian estas codificaciones?

Por si no os habéis leído los 3 artículos anteriores de la Wikipedia os haré un breve resumen de la diferencia entre estas codificaciones de caracteres. Básicamente la ISO 8859-15 y la CP1252 son ampliaciones de la ISO 8859-1, ambas cuentan con el símbolo de euro aunque se codifican de manera diferente.

¿Cómo cambiar la codificación de un proyecto en el Zend Studio?

Mi consejo es hacerlo al principio del proyecto porque una vez creado te va a modificar todos los archivos con la nueva codificación mostrando caracteres indeseados.

Vamos al proyecto en cuestión y pulsamos clic derecho, en el menú seleccionamos propiedades:

primera

En el nuevo cuadro nos saldrá la codificación deseada:

segunda

Con estos pasos tendremos controlada la codificación de nuestro proyecto y podremos codificarla en cualquier otra utilizando las herramientas anteriores.

Comentarios