ymipollo.com con UTF-8
Hace algunas horas vi un post de minid.net donde hablan sobre cambiar las bondades de usar UTF-8. Después de meditar un poco, y como migré ymipollo.com de servidor, decidí seguir los pasos que explican. A continuación detallo la forma en que el servidor fue migrado a UTF-8:
- Lo primero, como utilizo MySQL 4.1.x para el almacenamiento de datos del blog, cambié las características de la base, tablas y campos:
En un ejemplo, base de datos llamada Journal, tabla llamada Posts con el campo llamado body donde almacena el contenido del post.
- Cambio la definición de base de datos:
ALTER DATABSE Journal SET CHARACTER SET utf8;- Cambio la definición de la tabla:
ALTER TABLE Journal.Posts DEFAULT CHARSET SET utf8;- Cambio la definición del campo:
ALTER TABLE MODIFY body body TEXT CHARACTER SET utf8;
Cabe mencionar que debe haber formas más rápidas de cambiar los datos, pero esta fue la que me funcionó (de hecho no son muchos campos donde almaceno texto). Con las instrucciones anteriores cambié 29612 posts de la comunidad de ISO-8859-1 a UTF-8.
- Lo siguiente, fue cambiar todos los archivos php, ya que fueron escritos con vim en ISO-8859-1, leyendo un poco encontré que con el comando iconv es posible cambiar la codificación de caracteres, así que hize un scriptito muy sencillo en PHP que contiene:
/* Archivo: convertEncode2UTF8.php, convierte documentos de ISO8859-1 a UTF-8 */
if(!isset($argv[‘1’]) or empty($argv[‘1’])) die(” especifique archivo.” );
$file = $argv[‘1’];
if(!is_file($file)) die(“no existe el archivo $file… “ ) ;
$nfile = $file.”.”.time();
$x = `iconv —from-code=ISO-8859-1 —to-code=UTF-8 $file > $nfile`;
$x = `mv -f $nfile $file`;
echo “$file Done “;
?>
Después de ello, solo lo ejecuté por cada archivo php que tengo, algo como:
for i in `ls *php`; do convertEncode2UTF8.php $i ; done;
Listo, ahora tenemos ymipollo.com funcionando con UTF-8 ;-).
P.D. Gracias a David por el tip de mysql


