El comando iconv
es una herramienta en sistemas Unix y Linux que se utiliza para la conversión de codificación de caracteres (charset) en archivos de texto. Con iconv
, puedes cambiar la codificación de caracteres de un archivo de texto de una codificación a otra. Esto es útil cuando necesitas trabajar con archivos que están en una codificación diferente a la que tu sistema o aplicación espera o soporta. Aquí tienes una explicación del comando y algunos de sus usos más comunes:
Sintaxis básica:
iconv [opciones] -f codificación_origen -t codificación_destino archivo_origen -o archivo_destino
[opciones]
: Son banderas opcionales que te permiten personalizar la conversión.-f codificación_origen
: Especifica la codificación de caracteres original del archivo.-t codificación_destino
: Especifica la codificación de caracteres a la que deseas convertir el archivo.archivo_origen
: Es el archivo de texto de origen que deseas convertir.-o archivo_destino
: Es el nombre del archivo de destino donde se almacenará el resultado de la conversión.
Usos más comunes:
- Convertir un archivo de una codificación a otra:
iconv -f utf-8 -t iso-8859-1 archivo_utf8.txt -o archivo_iso8859.txt
En este ejemplo, iconv
convierte un archivo de texto llamado «archivo_utf8.txt» codificado en UTF-8 a la codificación ISO-8859-1 y guarda el resultado en «archivo_iso8859.txt».
- Listar las codificaciones de caracteres disponibles:
iconv -l
Este comando muestra una lista de las codificaciones de caracteres disponibles que puedes utilizar con iconv
. Puede ser útil para encontrar el nombre correcto de la codificación de origen o destino.
- Convertir varios archivos a la vez en un bucle:
for archivo in *.txt; do iconv -f windows-1252 -t utf-8 "$archivo" -o "utf8_$archivo"; done
Este script de shell convierte todos los archivos .txt
en el directorio actual de la codificación Windows-1252 a UTF-8 y agrega «utf8_» al inicio del nombre del archivo resultante.
- Eliminar caracteres no válidos o desconocidos:
iconv -f utf-8 -t utf-8 -c archivo.txt -o archivo_sin_caracteres_invalidos.txt
La opción -c
(–discard-ilseq) se utiliza para eliminar caracteres no válidos o desconocidos en lugar de detener la conversión cuando se encuentran.
- Cambiar el nombre de archivo al convertir:
iconv -f utf-8 -t iso-8859-1 archivo_utf8.txt -o archivo_iso8859.txt && mv archivo_iso8859.txt archivo.txt
En este ejemplo, iconv
convierte el archivo UTF-8 y luego cambia el nombre del archivo resultante al original.
- Realizar conversiones en pipes (tuberías):
cat archivo_origen | iconv -f utf-8 -t ascii > archivo_destino
Puedes utilizar iconv
en conjunto con otros comandos en una tubería para realizar conversiones y procesamiento de texto en línea.
El comando iconv
es especialmente útil cuando necesitas trabajar con archivos de texto en diferentes codificaciones de caracteres, como UTF-8, ISO-8859-1, Windows-1252, entre otras. Te permite garantizar que los datos se interpreten y almacenen correctamente sin perder caracteres o dañar la información.