Crea el directorio destino, copia el siguiente código y guárdalo en un archivo __iso2utf.php (dentro de ese directorio), modifica $in_dir y $out_dir para apuntar a las carpetas de origen y destino, respectivamente; después abre en tu navegador el script desde localhost, ejemplo: http://localhost/sitio.utf/__iso2utf.php
Código php:
Ver original
<?php $in_dir = '/wamp/www/sitio'; $out_dir = '/wamp/www/sitio.utf'; 'php', 'txt', 'js', 'css', 'tpl', 'htm', 'html' ); $cdirs = $cfiles = 0; function getDir($input, $output) { global $extensions, $cdirs, $cfiles; echo 'Cargando directorio: ' . $input . '<br />'; if($file == '.' || $file == '..') continue; $ifile = "$input/$file"; $ofile = "$output/$file"; // Es directorio, primero vemos que exista en el destino // Si estás en linux agrega permisos de escritura: mkdir($ofile, 0777) } // Procesamos el directorio y continuamos el ciclo $cdirs++; getDir($ifile, $ofile); continue; } continue; echo '---- Procesando el archivo: ' . $file . '<br />'; // Leemos el archivo actual // Creamos el nuevo archivo en binario // Grabamos el archivo, convirtiendo el contenido en UTF-8 $cfiles++; } } ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> <?php getDir($in_dir, $out_dir); echo '<p>Proceso finalizado con éxito:<br />'; echo "<b>$cdirs</b> directorios y <b>$cfiles</b> archivos procesados.</p>"; ?> </body> </html>
Lo que hace el script es recorrer todas las carpetas del sitio, analizar la extensión de los archivos y crear copias en binario de cada una de ellas en la carpeta de destino que corresponda.
Recuerda que esta es una solución temporal. Si Subes alguno de estos archivos por FTP debes hacerlo en modo binario o "la magia" podría no funcionar. Cada que vuelvas a editar alguno de estos archivos debes guardarlos con la codificación adecuada:
En Notepad (de windows) Menú -> Archivo -> Guardar como... y en la ventana de diálogo seleccionas Codificación: UTF-8 y haces click en aceptar cuando te pregunte si deseas sobreescribir.
En Notepad++ Menú -> Formato -> Codificar en UTF-8 y después grabas el archivo con CTRL + S o Menú -> Archivo -> Guardar
Nota: En ambiente LINUX deberás cambiar la parte de mkdir para asignar permisos de escritura al crear directorios y, tal vez, necesitarás modificar el modo de creación de archivos en fopen de 'wb' a 'w', teniendo en cuenta que la creación de archivos de texto es por default codificación UTF-8.