RSS 2.0 Atom 1.0 CDF  
JASoft.org - Utilidad para cambiar en masa la codificacion de los archivos
El blog de José Manuel Alarcón Aguín. Programación .NET y mucho más...
 

Ayer tuve la necesidad de hacer uncambio 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 uamos 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!

Tuesday, September 11, 2007 7:44:33 PM (Hora de verano romance, UTC+02:00)  #    Comments [4]   Freeware  |  Trackback Tracked by:
"Nueva versión mejorada de FileEncodingConverter" (JASoft.org) [Trackback]
Friday, September 21, 2007 1:39:40 PM (Hora de verano romance, UTC+02:00)
Hola,

El código de la aplicación está disponible ??
espinete
Friday, September 21, 2007 2:02:53 PM (Hora de verano romance, UTC+02:00)
Pues no lo he puesto, pero si estás interesado escríbeme un correo y te lo hago llegar sin problemas.

Saludos

JM.
Thursday, November 29, 2007 9:26:46 AM (Hora estándar romance, UTC+01:00)

Por si pudiera ser de interés,

Detecting Text Encoding for StreamReader
http://west-wind.com/WebLog/posts/197245.aspx
espinete
Thursday, November 29, 2007 11:03:16 AM (Hora estándar romance, UTC+01:00)
Gracias por el enlace Espinete.
Realmente ese código es un tanto "a pelo". Yo he hecho otra cosa, usando el método GetPreamble() de cada tipo de codificación para comparar las cabeceras, lo que lo hace más genérico y me da más confianza.

Pero eso ya lo sabes tú, que tienes el código :-)

Un saludo

JM.
Name
E-mail
Home page

Comment (Some html is allowed: a@href@title, b, i, strike, strong, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview
Copyright © 2008 José Manuel Alarcón Aguín. All rights reserved.