El comando «iconv»



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:

  1. 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».

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.