Iconov

iconv es una  utilidad UNIX (y una biblioteca del mismo nombre ) para convertir texto de una codificación a otra. También portado a Windows.

Sintaxis

iconv [ -c ] [ -s ] [ -f codificación ] [ -t codificación ] [ archivo de entrada... ] iconov -l

Descripción

La utilidad iconv convierte texto de una codificación a otra. La codificación de entrada se establece con la tecla -f y la codificación de salida con la tecla -t. Cualquiera de estas codificaciones tiene como valor predeterminado la configuración regional del sistema. Todos los archivos de entrada se leen a la vez, si no se especifica el parámetro del archivo de entrada, se usa la entrada estándar y el texto convertido se envía a la salida estándar .

Cuando se da la opción -c, los caracteres que no se pueden convertir simplemente se descartan. De lo contrario, cuando se produce un error de este tipo, el programa se bloquea .

Cuando se da la opción -s, no se imprimen mensajes de error.

El modificador -l muestra una lista de codificaciones disponibles.

Ejemplos

Transcodificación masiva

El siguiente script encuentra todos los archivos en el directorio actual con la extensión *.java, los recodifica en UTF-8 y copia el resultado en el directorio res:

mkdir resolución find -max depth 1 -iname "*.java" -type f -exec bash -c "iconv -c -f WINDOWS-1251 -t UTF-8 {} > ./res/{}" \;

Recodificación de todos los archivos en un directorio con su reemplazo:

para i en * ; haz iconv -f WINDOWS-1251 -t UTF-8 " $i " >tmp ; mv tmp " $i " ; hecho

Grabación recursiva de todos los archivos del tipo requerido (en el ejemplo - txt):

encontrar. -nombre '*.txt' | mientras leo i ; haz iconv -f WINDOWS-1251 -t UTF-8 " $i " >tmp ; mv tmp " $i " ; hecho

Recodificación recursiva de todos los archivos html:

# !/bin/sh encontrar . -tipo f -nombre '*.htm' -o -nombre '*.html' | mientras leo hago echo $i iconv -f WINDOWS-1251 -t UTF-8 " $i " > tmp mv -f tmp " $i " hecho

Ventanas de transcodificación masiva

El siguiente conjunto de scripts encuentra todos los archivos en el directorio actual con la extensión *.txt, recodifica a CP1251 desde KOI8-R :

todo.cmd:

para /R %% i en ( . ) llame a txt.cmd %% i

txt.cmd:

establezca cd2 = %cd% cd %1 para %% j en ( *.txt ) llame a % cd2 % \iconv2.cmd %% j cd %cd2%

iconov2.cmd:

iconv -c -f KOI8-R -t CP1251 %1 > ganar. %1 del %1 renombrar ganar. %1 %1

Otra forma (a través de cmd):

Antes de ejecutar este comando, debe agregar la ruta al programa iconv.exe a la variable de entorno Ruta:

para %% i en ( *.txt ) haga iconv -f cp1251 -t utf-8 " %% i" > utf8/ %% i

El comando recodificará todos los archivos con la extensión "txt" y colocará los archivos recodificados en una carpeta utf8 creada previamente.

Véase también

Enlaces