OCULTAR MENU LATERAL >>

Solución al problema "Codificación no válida" cuando descomprimimos sobre Ubuntu

Desde hace algún tiempo sufro un problema que me tiene un poquito quemado. En Ubuntu, al descomprimir ficheros en formato .RAR, en ocasiones, obtengo errores del tipo "Codificación no válida" o los propios ficheros descomprimidos contienen caracteres extraños. El problema radica principalmente en los caracteres especiales (tildes, ñ,...) que tienen una codificación diferente.

Al contrario de lo que puedan pensar algunos, el problema no proviene de un fallo de configuración de Ubuntu, ni mucho menos de una incompatibilidad de éste. Sino que procede de una incompatibilidad entre el sistema donde el fichero fue comprimido y el resto de sistemas existentes.

En Ubuntu (al igual que en casi todos los sistemas operativos: MacOSX, Android,...) el formato de codificación de caracteres utilizado es UTF-8, el cual usa un estándar, llamado Unicode, creado y adoptado por la mayoría de empresas del sector, y diseñado para facilitar el tratamiento informático, transmisión y visualización de textos de múltiples lenguajes y disciplinas técnicas además de textos clásicos de lenguas muertas.

¿por qué suelto este parrafazo? Pues porque el problema que tenemos es que el fichero fue comprimido en Windows y, como es de suponer, Microsoft no utiliza UTF-8, usa sus propios formato de codificación no compatibles con el resto (Windows-1252 para idiomas occidentales, Windows-1253 para griego, Windows-1254 para turco, Windows-1256 para árabe,...).

En mi caso, el método que utilizo para salvar ese escollo es descomprimir aquellos ficheros con problemas mediante una herramienta de compresión/descompresión instalada sobre Wine. Para ello se puede usar una herramienta libre como 7-Zip (en su versión para windows) u otras herramientas más extendidas en el sistema de Microsoft, como el conocido WinRAR.

Mi opción elegida fue WinRAR, porque, entre otras cosas, permite añadir enlaces directos para la descompresión en el menú auxiliar al clicar con el botón derecho del mouse (ver imagen de la izquierda). WinRAR es un software propietario y de pago, pero que ofrece una versión gratuita de prueba. Veamos como instalarlo:
NOTA: Para instalar esta aplicación es necesario tener correctamente instalado Wine. Si no lo tienes ve aquí para obtenerlo.
  1. Descargamos la versión del programa que sea compatible con nuestro equipo. Para obtener la versión de prueba podemos descargarla desde su web oficial.
  2. Será descargado un fichero .EXE. Clicamos sobre él con el botón derecho del mouse y damos a Abrir con...->Wine cargador de programas de Windows.
  3. A partir de aquí se abrirá una ventana instaladora y seguiremos las instrucciones para instalar. Primero indicaremos la ruta donde se instalará (aconsejable dejarla por defecto: "C:\Archivos de programa\WinRAR") y daremos a Instalar.
  4. Una vez finalizada la instalación aparece una pantalla de configuración como la siguiente:
    En ella marcaremos los valores tal y como se indica en la imagen y daremos a Aceptar.
  5. Luego se abrirá el programa. Podemos cerrarlo (si no deseamos utilizarlo todavía).
Y con eso queda instalado. Podemos comprobar su funcionamiento clicando con el botón derecho del mouse sobre cualquier fichero .RAR; veremos en el menú las opciones de uso para WinRAR.


Salu2,
elSant0

ALGUNOS ARTICULOS RELACIONADOS

17 comentarios:

Anónimo dijo...

ese problema que tienes se arregla muy facil, as probado el UNRAR POR CONSOLA??

elSant0 dijo...

Muchas gracias. A menudo uso UNRAR bajo consola y soluciona el problema de "Codificación no válida", pero siguen apareciendo los caracteres extraños en algunos nombres de fichero debido a las diferencias entre UTF-8 y Windows-1252.

Salu2

Olimsso dijo...

Me fue de mucha ayuda tu guia.
Gracias

Anónimo dijo...

Sabes alguna solución para cuando tienes la cosa desmadrada?
Me refiero a carpetas con ficheros con codificación no válida mezclados.
Hay forma de reparar ficheros dentro de carpetas de forma recursiva?

elSant0 dijo...

Anonimo(27/05/11)@ El problema que surge es que los ficheros no están "rotos" para ser "reparados", sino que al ser creados fueron utilizados caracteres extraños en vez de los idóneos. Por tanto es imposible detectar cuales se ven afectados y cuales no (ya que habría que comparar con los nombres originales, los cuales supongo que no tienes).

Lo que sí he buscado es algún programilla que convirtiera TODOS los nombres de los ficheros del formato de Windows a UTF-8 (se corregirían muchos, aunque no todos), pero no he encontrado nada. Aún así, no es difícil crear un shell-script que haga dicha labor, por lo que te animo a hacerlo o a que pidas "el favor" en algún foro de programación.

Salu2

Anónimo dijo...

hey gracias hacía tiempo que me molestaba este problema, ahora ya está solucionado :)

Anónimo dijo...

EXCELENTE!!!
Muchas gracias... funcionó a la perfección

Anónimo dijo...

hola... hay una solución sencilla y muy eficaz
instala convmv en ubuntu...
una vez instalado abrir el terminal en el raíz del directorio en donde están los archivos con nombre no válido
ejecutar el siguiente comando:
find . -name '?' | xargs convmv -r --notest -f cp850 -t UTF-8
Con esto se sustituirán todos los caracteres no válidos "?" por el suyo correspondiente.
(a mi me pasó con un listado enorme de libros en mobi y tenía más de 500 nombres a reparar en distintos directorios y se solucionó en 5 segundos.....)

elSant0 dijo...

Anónimo(16/10/11)@ Muchas gracias por la info. Desconocía el comando "convmv". He estado informándome un poco y he visto que efectivamente sirve para cambiar el código de caracteres en los nombres de ficheros.

Me va a ser MUY útil. Incluso puede que pronto le dedique algún post explicando algunos detalles más (por ejemplo, la "?" no es el único carácter que aparece en conversiones erróneas a UTF-8).

De nuevo 1000 gracias.
Salu2

Anónimo dijo...

Si añadimos el comando que propone Anónimo dos post arriva dentro de los script de nautilus podríamos añadir esta utilidad al menú contextual del navegador de archivo.

La solución quedaría de la siguiente forma:

1- Instalar convmv:
sudo apt-get install convmv

2- Abrir gedit y escribir el siguiente código:

#!/bin/bash
# Reparar caracteres especiales cuando se importan archivos desde particiobes fat32
find $NAUTILUS_SCRIPT_SELECTED_URIS -name '?' | xargs convmv -r --notest -f cp850 -t UTF-8

3- Guardar el archivo con nombre "Rectificar_caracteres_especiales" en: ~/.gnome2/nautilus-scripts/

4- Dar permisos de ejecución al archivo creado.

Ahora ya estará disponible esa utilidad desde el menú contextual de nautilus.

Que les sea útil.

elSant0 dijo...

Anónimo(28/10/11)@ Es una muy buena idea. En cuanto tenga un poquito de tiempo (que vaya 3 mesecitos que llevo...) voy a dedicarle un post completo a este tema.

Muchas gracias por el aporte.

Salu2

Anónimo dijo...

Antes que nada gracias por la información, me ha resultado útil. Solo añadir que aunque todo lo referente a WinRAR funciona correctamente, hay otra alternativa, creo que mas elegante y eficaz, que es la utilización directamente en Linux del descompresor PeaZIP, sin necesidad de utilizar Wine, ya que PeaZIP dispone de versión en Linux.

Un saludo.

Anónimo dijo...

No hace falta Wine, desintalando el paquete unrar e instalando p7zip-rar, este problema se soluciona.
Saludos

Anónimo dijo...

con el peazip no hace falta tirar de wine

Anónimo dijo...

Anónimo(28/10/11)@ Fantástica la solución, no sólo para descomprimir archivos, a mi me surgía este problema también al copiar archivos de un DVD de datos a un disco duro portátil, y en 1 segundo VOILÀ

GRACIASSSSSSS

Anónimo dijo...

La solución del script y añadirle al menu contextual de Nautilus me ha parecido una solucion muy limpia, pues es independiente del origen del archivo.

Muchas gracias, y saludos.

Anónimo dijo...

Ó como extensión para Nautilus: nautilus-filename-repairer

Publicar un comentario

Escribe aquí tus valoraciones, dudas, sugerencias,... Son sólo unos instantes y ayuda a mejorar el blog.