Error al comprimir archivos con caracteres Unicode en nombres con "enviar a> carpeta comprimida (comprimida) de Win7"

12

Cuando intento comprimir archivos que contienen caracteres Unicode en sus nombres, como © o ™, aparece el siguiente error:

[Título de la ventana] Error de carpetas comprimidas (comprimidas)

[Contenido] 'C: \ Asd ™ .txt' no se puede comprimir porque incluye caracteres que no se pueden usar en una carpeta comprimida, como ™. Debe cambiar el nombre de este archivo o directorio.

[OKAY]

Esto solo se convirtió en un problema cuando reinstalé Windows 7. Probablemente tenía algunos recursos necesarios para que este error se resolviera automáticamente, pero ahora es una instalación casi limpia y no puedo comprimir archivos. ¿Cómo puedo solucionar esto?

UPD: Pasó un tiempo desde que publiqué esta pregunta, instalé algunas de mis aplicaciones habituales, pero el problema aún existe y no estoy seguro de si se puede solucionar instalando alguna aplicación específica de antes.


La compresión integrada de Windows 10 podría no tener este problema, como se informó en un comentario a esta pregunta .

usuario1306322
fuente
3
Sin ofender, pero ¿qué hay de malo en usar un programa de compresión adecuado, como WinRAR o 7-Zip (gratis)?
Karan
3
Me gustó la compresión estándar de Windows porque solo son dos clics (con una pausa) y está ahí desde una instalación limpia.
user1306322
Me acabo de enterar que comprimir con "enviar a" de Windows funciona tan bien como la "mejor" compresión de Winrar, pero mucho más rápido.
user1306322
Me gustaría agregar que después de todos estos inconvenientes, decidí comenzar a usar 7-zip para un archivado rápido. Quizás sean unos pocos clics más que antes, pero definitivamente vale la pena deshacerse de esa frustración.
user1306322
1
Parece que la cremallera integrada win 10 ahora admite nombres de archivo unicode.
Imre Pühvel

Respuestas:

17

Si los caracteres ofensivos provienen de un idioma que no es el inglés pero es compatible con Microsoft, puede instalar el paquete de idioma de MUI (Interfaz de usuario multilingüe) relevante desde Windows Update o el LIP (Paquete de interfaz de idioma) relevante desde aquí como una posible solución.

Además de lo anterior, es posible que deba cambiar la configuración regional del sistema .

La configuración regional del sistema determina el conjunto de caracteres predeterminado (letras, símbolos y números) y la fuente utilizada para ingresar y mostrar información en programas que no usan Unicode. Esto permite que los programas que no son Unicode se ejecuten en su computadora usando el idioma especificado. Es posible que deba cambiar la configuración regional predeterminada del sistema cuando instale idiomas de visualización adicionales en su computadora. Seleccionar un idioma diferente para la configuración regional del sistema no afecta el idioma en los menús y cuadros de diálogo para Windows u otros programas que sí usan Unicode.

Para hacerlo:

  1. Escriba "región" en el cuadro de búsqueda del menú Inicio (sin las comillas)

  2. Abra el subprograma Panel de control de región e idioma

  3. Haga clic en la pestaña Administrativo y, a continuación, en Idioma para programas que no sean Unicode, haga clic en Cambiar configuración regional del sistema . Si se le solicita una contraseña o confirmación de administrador, escriba la contraseña o proporcione la confirmación.

  4. Seleccione el idioma y luego haga clic en Aceptar.

  5. Si se le solicita que reinicie su computadora, haga clic en Reiniciar ahora para hacerlo.

    Win7 Cambiar configuración regional del sistema


Sin embargo, si los caracteres ofensivos son algo como como se mencionó anteriormente, no creo que haya ninguna solución oficial de Microsoft para esta limitación zipfldr.dll , que ha existido siempre que Windows haya tenido esta característica (por lo que si realmente lo solucionó antes) , posiblemente instaló algún componente de terceros). De Wikipedia :

¡Las versiones de Microsoft Windows han incluido soporte para compresión zip en Explorer desde el Plus! El paquete se lanzó para Windows 98. Microsoft llama a esta característica "Carpetas comprimidas". No todas las funciones zip son compatibles con la capacidad de carpetas comprimidas de Windows. Por ejemplo, el cifrado AES, los archivos divididos o divididos y la codificación de entrada Unicode no se pueden leer ni escribir en la función Carpetas comprimidas en Windows XP o versiones posteriores.

El formato de archivo ZIP careció de compatibilidad con Unicde durante mucho tiempo, y esta extensión solo se agregó hace 6 años en 2006. Según el APÉNDICE D - Codificación de idioma (EFS) de la especificación de formato de archivo ZIP :

D.1 El formato ZIP ha admitido históricamente solo el conjunto de codificación de caracteres original de PC de IBM, comúnmente conocido como Código de página 437 de IBM. Esto limita el almacenamiento de caracteres de nombre de archivo solo a aquellos dentro del rango de valores original de MS-DOS y no admite correctamente nombres de archivo en otras codificaciones de caracteres o idiomas. Para abordar esta limitación, esta especificación admitirá el siguiente cambio. [ Lea el documento para el resto. ]

Desde entonces, por supuesto, todos los principales archivadores de Windows que implementan el formato se han actualizado para incluir el soporte Unicode, comenzando creo que con WinZip en 2008. Desafortunadamente, Microsoft, por alguna extraña razón, otorgó la licencia de una biblioteca de terceros para su función de Carpetas comprimidas (aunque no es terriblemente difícil de codificar el soporte ZIP), y obviamente esta biblioteca es anterior a la adición de Unicode al formato de archivo ZIP. Además, como una clara señal de cuánto le importa esta característica, Microsoft no ha actualizado el código para corregir este error hasta la fecha (aparentemente, incluso la nueva clase System.IO.ZipArchive en la última versión de .Net Framework, es decir 4.5 no lo hizo bien inicialmente, pero el error ya se ha solucionado).Supongo que esperan que todos instalen uno de los muchos archivadores de terceros con todas las funciones disponibles, que es precisamente lo que les recomendé anteriormente.

Puede leer los sórdidos detalles sobre esta peculiar falta de compatibilidad con Unicode en Windows en la siguiente serie de publicaciones de blog de Michael Kaplan de Microsoft :


PD "Me acabo de enterar de que comprimir con Windows" enviar a "funciona tan bien como la" mejor "compresión de Winrar, pero mucho más rápido". - Acabo de probar esto, varias veces. Aparte del tiempo extra que se tarda en abrir WinRAR's Agregar al archivodiálogo, seleccione ZIP como formato de archivo y presione OK, el tiempo real de compresión fue aproximadamente el mismo para ambos, con WinRAR tomando menos tiempo en general (aunque las diferencias fueron insignificantes). Si vio una gran diferencia, solo podría haber sido si probó WinRAR en un conjunto de archivos primero, y luego comprimió de inmediato los mismos archivos con carpetas comprimidas. Naturalmente, la segunda vez con Windows ya había almacenado en caché los datos, por lo que el proceso tomó una fracción del tiempo que inicialmente. Hágalo en el orden opuesto en un conjunto de archivos que no haya tocado anteriormente durante la sesión actual de Windows, y apuesto a que el resultado se revertirá. :)

En cuanto al tamaño comprimido final, dependiendo de los datos / combinación de formatos de archivo archivados, encontré que cualquiera de los dos hacía un mejor trabajo (aunque nuevamente las diferencias eran insignificantes). Por supuesto, los formatos 7z o Rar (o incluso ZipZ de WinZip) son mucho mejores en este aspecto y superarán el ZIP normal casi cualquier día (es decir, ZIP usando el algoritmo de desinflado tradicional / heredado en lugar de PPMd y similares).

Karan
fuente
1

Tengo el mismo problema. Utilice 7-zip manager y comprima sus archivos y el problema está resuelto. :)

Jaivin
fuente
1
Desafortunadamente, este no es el tipo de solución que estaba buscando. Esto implica instalar software de terceros, que no es algo que se pueda hacer en cualquier computadora como en mi caso cuando hice esta pregunta.
user1306322