
La documentación de PKZipC menciona la -utf8
opción de almacenar nombres de archivos que no sean ASCII como UTF-8 dentro de un ZIP, pero no dice cómo agregar dichos archivos usando un @list
argumento a pkzipc -add
.
Probé varias combinaciones de ejecución con/sin el -utf8
conmutador y uso @list
de archivos guardados en codificaciones UTF-8 o UTF-16 con/sin BOM, pero todas fallaron.
Me pregunto si alguien tuvo más suerte al hacer que esto funcione.
Respuesta1
Como has probado todas las combinaciones posibles del -utf8
switch y @list
con codificación UTF-8 o UTF-16 e incluso con/sin BOM, no veo qué más puedes hacer usando PKZipC para Windows y sus parámetros.
Aconsejaría ponerse en contacto con el soporte de PKWARE y presentar una queja, aunque es posible que esto no traiga una solución inmediata.
Mientras tanto, deberá transformar los nombres de archivos que contengan caracteres que no sean ASCII en nombres sin dichos caracteres. Este formato se denomina forma abreviada del nombre de archivo, que es básicamente el antiguo formato DOS del nombre de archivo 8.3. El dir /x
comando mostrará estos nombres.
Para obtener los nombres cortos de varios archivos, consulte la publicación ¿Cómo puedo encontrar la ruta corta de un directorio/archivo de Windows? donde se enumeran varias soluciones. me gustó especialmenteesta respuesta que propuso la siguiente frase:
cmd /c for %A in ("C:\Program Files") do @echo %~sA
A continuación se muestra un ejemplo de cómo puede utilizarlo:
Como usted dice que su departamento de TI ha decidido deshabilitar los nombres cortos de NTFS 8.3 en sus recursos compartidos de red, sugeriría buscar una alternativa. Algunas que sugeriría probar son:
Bandizip (software gratuito y mi favorito personal)
guisantezip (gratuito y de código abierto)
7 cremalleras (gratuito y de código abierto)
winrar(comercial)
WinZip(comercial)
Respuesta2
Usando el símbolo del sistema, intente esto:
ejecutar comando
chcp 65001
para cambiarcmd
la página de códigos autf8
Luego ejecuta tu
pkzipc
comando con-utf8
Espero que te ayude.