NOTA: esta versión de la utilidad está obsoleta. Hay una nueva versión disponible con más opciones y el código fuente completo aquí. Utiliza esa mejor.
Ayer tuve la necesidad de hacer un cambio de codificación masivo de archivos para un proyecto. El caso es que tenía varias decenas de archivos de texto y HTML distribuidos en varios niveles de carpetas. Éstos estaban codificados como UTF-8 y necesitaba disponer de los mismos con codificación ANSI. Dado que es un problema que se puede presentar a menudo en empresas como la nuestra que maneja muchos contenidos decidí escribir una utilidad que hicera conversiones entre diferentes tipos de coficación. Así que mientras veía un par de capítulos de CSI (no me pueden dejar de rodrgíguez, si ya lo digo yo) escribí esta pequeña utilidad que estoy seguro que a muchos les puede resultar de ayuda.
Se trata de FileEncodingConverter.exe. Es una aplicación de consola que toma como parámetros la ruta base que contiene nuestros archivos y, opcionalmente un tipo de codificación a la que queremos convertirlos. Acepta rutas relativas a la carpeta actual y rutas absolutas.
Los tipos de codificación soportados son los siguientes: ANSI, ASCII, Unicode, UnicodeBI (Big Indian), UTF32, UTF7, UTF8. No se distinguen mayúsculas y minúsculas. Si omitimos la codificación se usará ANSI.
Lo que hace es recorrer la carpeta base especificada y todas sus subcarpetas y transforma todos los archivos con extensiones .htm, .html y .txt a la codificación de destino especificada. Sólo transforma un archivo si es necesario, puesto que si ya está guardado con la codificación especificada no pasa el trabajo inutilmente. Muestra un progreso de los archivos que va transformando, y al final muestra un resumen de lo que ha hecho.
Así, por ejemplo, para transformar todos los archivos de una carpeta y sus subcarpetas de su codificación actual a Unicode Big Indian escribiríamos:
FileEncodingConverter C:\Micarpeta UnicodeBI
o para convertir todos a ANSi valdría con poner:
FileEncodingConverter C:\Micarpeta
Si no ponemos nada o usamos los parámetros /? o -? muestra una ayuda básica por consola.
Te lo puedes descargar desde aquí: FileEncodingConverter (3,73 KB). Necesitarás la versión 2.0 o superior de .NET instalada.
¡Que lo disfrutes!