character-encoding – ¿Cómo puedo descomprimir correctamente un archivo ZIP de archivos con nombres hebreos?

Pregunta:

Alguien me envió un archivo ZIP que contiene archivos con nombres hebreos (y creado en Windows, no estoy seguro de qué herramienta). Utilizo LXDE en Debian Stretch. El administrador de archivos de Gnome logra descomprimir el archivo, pero los caracteres hebreos están distorsionados. Creo que obtengo octetos UTF-8 extendidos a caracteres Unicode, por ejemplo, tengo un archivo cuyo nombre tiene cuatro caracteres y un .doc suficiente, y los caracteres son: 0x008E 0x0087 0x008E 0x0085. Usar la utilidad de descompresión de la línea de comandos es aún peor: se niega a descomprimir por completo, quejándose de un "carácter ancho o multibyte no válido o incompleto".

Entonces, mis preguntas son:

  • ¿Existe otra utilidad de descompresión que descomprima mis archivos con los nombres correctos?
  • ¿Hay algún problema con la forma en que se comprimió el archivo o es solo una incompatibilidad de las implementaciones ZIP? ¿O incluso una falla / error de las utilidades ZIP de Linux?
  • ¿Qué puedo hacer para obtener los nombres de archivo correctos después de haberlos descomprimido usando los distorsionados?

Respuesta:

Parece que los nombres de los archivos están codificados en una de las páginas de códigos patentadas de Windows ( CP862 , 1255 , etc.).

  • ¿Existe otra utilidad de descompresión que descomprima mis archivos con los nombres correctos? No conozco ninguna utilidad zip que admita estas páginas de códigos de forma nativa. 7z tiene cierto conocimiento de las codificaciones, pero creo que tiene que ser una codificación que su sistema conozca de manera más general (se elige configurando la variable de entorno LANG ) y es probable que las páginas de códigos de Windows no se encuentren entre ellas.

    unzip -UU debería funcionar desde la línea de comandos para crear archivos con los bytes correctos en sus nombres (desactivando todo el soporte Unicode). Ese es probablemente el efecto que ya obtuvo de la herramienta de GNOME. La codificación no será correcta de ninguna manera, pero podemos solucionarlo a continuación.

  • ¿Hay algún problema con la forma en que se comprimió el archivo o es solo una incompatibilidad de las implementaciones ZIP? ¿O incluso una falla / error de las utilidades ZIP de Linux? El archivo que le han proporcionado no se creó de forma portátil. Eso no es necesariamente incorrecto para un uso interno donde la codificación es fija y conocida de antemano, aunque la especificación de formato dice que se supone que los nombres son UTF-8 o cp437 y los suyos no lo son. Incluso entre máquinas con Windows, el uso de páginas de códigos diferentes no funciona bien, pero las máquinas que no son de Windows no tienen un concepto de esas páginas de códigos para empezar. La mayoría de las herramientas codifican en UTF-8 sus nombres de archivo (lo que no siempre es suficiente para evitar problemas).

  • ¿Qué puedo hacer para obtener los nombres de archivo correctos después de haberlos descomprimido usando los distorsionados? Si puede identificar la codificación de los nombres de archivo, puede convertir los bytes de los nombres existentes en UTF-8 y mover los archivos existentes al nombre correcto. La herramienta convmv esencialmente convmv ese proceso en un solo comando: convmv -f cp862 -t utf8 -r . intentará convertir todo lo que hay dentro . de cp862 a UTF-8.

    Alternativamente, puede usar iconv y find para mover todo a sus nombres correctos. Algo como:

     find -mindepth 1 -exec sh -c 'mv "$1" "$(echo "$1" | iconv -f cp862 -t utf8)"' sh {} \;

    encontrará todos los archivos debajo del directorio actual e intentará convertir los nombres a UTF-8.

    En cualquier caso, puede experimentar con diferentes codificaciones e intentar encontrar una que tenga sentido.


Una vez que haya arreglado la codificación por usted, si desea enviar estos archivos en la otra dirección, es posible que tenga el mismo problema en el otro extremo. En ese caso, puede revertir el proceso antes de comprimir los archivos con -UU , ya que es probable que sea muy difícil de arreglar en el extremo de Windows.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım