[ https://issues.apache.org/jira/browse/COMPRESS-176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13216652#comment-13216652 ]
Stefan Bodewig commented on COMPRESS-176: ----------------------------------------- In extract.c of unzip60 line 1310ff there is this code that replaces backslashes with slashes. It only replaces them in names that don't contain forward slashes (MBSCHR looks up a character in a character array) and only if "hostnum" indicates a FAT system. {noformat} /* for files from DOS FAT, check for use of backslash instead * of slash as directory separator (bug in some zipper(s); so * far, not a problem in HPFS, NTFS or VFAT systems) */ #ifndef SFX if (G.pInfo->hostnum == FS_FAT_ && !MBSCHR(G.filename, '/')) { char *p=G.filename; if (*p) do { if (*p == '\\') { if (!G.reported_backslash) { Info(slide, 0x21, ((char *)slide, LoadFarString(BackslashPathSep), G.zipfn)); G.reported_backslash = TRUE; if (!error_in_archive) error_in_archive = PK_WARN; } *p = '/'; } } while (*PREINCSTR(p)); } #endif /* !SFX */ {noformat} "hostnum" is the upper byte of "version made by" inside the central directory header - this is ZipArchiveEntry's get/setPlatform - and FS_FAT_ is 0 (ZipArchiveEntry#PLATFORM_FAT). We'd have all pieces together to emulate this. > ArchiveInputStream#getNextEntry(): Problems with WinZip directories with > Umlauts > -------------------------------------------------------------------------------- > > Key: COMPRESS-176 > URL: https://issues.apache.org/jira/browse/COMPRESS-176 > Project: Commons Compress > Issue Type: Bug > Components: Archivers > Affects Versions: 1.3 > Environment: Windows 7 > Reporter: Wurstbrot mit Senf > Attachments: test-7zip.zip, test-windows.zip, test-winzip.zip, > testzap-winzip.zip > > > There is a problem when handling a WinZip-created zip with Umlauts in > directories. > I'm accessing a zip file created with WinZip containing a directory with an > umlaut ("รค") with ArchiveInputStream. When creating the zip file the > unicode-flag of winzip had been active. > The following problem occurs when accessing the entries of the zip: > the ArchiveEntry for a directory containing an umlaut is not marked as a > directory and the file names for the directory and all files contained in > that directory contain backslashes instead of slashes (i.e. completely > different to all other files in directories with no umlaut in their path). > There is no difference when letting the ArchiveStreamFactory decide which > ArchiveInputStream to create or when using the ZipArchiveInputStream > constructor with the correct encoding (I've tried different encodings CP437, > CP850, ISO-8859-15, but still the problem persisted). > This problem does not occur when using the very same zip file but compressed > by 7zip or the built-in Windows 7 zip functionality. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira