| Formulario de acceso |
|---|
| Anuncios |
|---|
|
|
| Conversión de archivos a UTF-8 |
|
|
| domingo, 22 de enero de 2006 | ||
|
En numerosas ocasiones, cuando publicamos contenidos en web bajo un servidor linux, nos hemos visto en la necesidad de convertir la codificación de un determinado archivo al estándar utf-8. Casi siempre por desconocimiento de las peculiaridades de nuestro sistema, terminamos haciendo dicha conversión desde Vim o desde un sistema con MS Windows. iconv, el codificador de texto Aunque a buen seguro tendremos instalado iconv en nuestro sistema, no estaría de más comprobar que, en efecto, es así. Por ejemplo, teclearemos lo siguiente en la consola: # whereis iconv Que nos devolverá la ruta de instalación del programa, habitualmente en /usr/bin/iconv . Si no estuviera instalado, buscaríamos el paquete adecuado para nuestra distribución y lo instalaríamos. Por ejemplo, para un sistema Fedora, el paquete que contiene a la utilidad es glibc-common cuya última versión es glibc-common-2.3.5-10.3. Las últimas versiones de PHP soportan igualmente iconv como comando nativo. Para más información, podemos visitar la página de la librería GNU C en http://www.gnu.org/software/libc/ . La sintáxis del comando es muy simple: iconv -f encoding -t encoding inputfile El primer parámetro (-f) indica la codificación actual del archivo. El segundo parámetro (-t), la codificación de salida del archivo, que pasaremos como tercer parámetro (inputfile). La salida de los datos se hace por la consola estándar, aunque tendremos la oportunidad de usar el parámetro --output, -o file para indicar una salida hacia otro lugar que no sea la consola. Así, una conversión de un archivo en formato ISO-8859-1 a utf-8 quedaría como sigue: iconv -f iso-8859-1 -t utf-8 archivo_ISO.txt > archivo_UTF.txt Si queremos obtener un listado de los formatos disponibles para la conversión, usaremos el siguiente comando: iconv --list Utilizando iconv Como apuntábamos en la introducción, podemos usar iconv para convertir bases de datos completas en Mysql a una nueva codifiación. Los pasos a seguir serían tan simples como estos: # mysqldump -u [admin] -p –add-drop-table db > db.sql # iconv -f iso-8859-1 -t utf-8 db.sql > db-utf8.sql Ya tratamos el uso comando mysqldump en otro artículo anterior, así que, teniendo como base nuestro nuevo archivo db-utf8.sql codificado en utf-8, volcaremos todos los datos a Mysql: mysql -u [admin] -p db < db-utf8.sql Como iconv está soportado por PHP (al menos desde la versión 5), podríamos programar un sencillo script que convirtiera, en caso de necesidad, múltiples archivos de una codificación a otra. E incluso podríamos programar un script en nuestro bash de linux. Como ejemplo y para finalizar este artículo, observemos este script que convierte recursivamente a utf-8 todos los archivos de un directorio: #! /bin/sh
Sólo los usuarios registrados pueden escribir comentarios. Powered by AkoComment 2.0! |
||
| < Anterior | Siguiente > |
|---|







