NOTE: This question is different from decompress ZIP with given encoding because none of those solutions work, and I'm unsure if a properly-functioning unzip program can even retrieve the correct filename.
There is a zip file with a Japanese character file name. unzip can specify character encodings, which usually works to retrieve correct filenames. (It isn't in the man or info page for unzip for my distribution, but it is in the executable's help output.)
But it doesn't work for some zip files, including this one. This is a collection of files for the animating program MikuMikuDance. Several files have a 'garbage' filename when used with unzip -O sjis -l archive.zip, or when decompressed with file-roller.
Another file in the archive refers to the garbage filenames, although it refers to the shift-JIS encoding of the name and not UTF8. It tries to load these files, so if they're named wrong, they can't load. The question here is whether the zip file is such that the correct filenames could be extracted by a different program, and whether they were named correctly on the uploader's system.
The desired filename is 'Figure_その他.fx' ("other" in Japanese). It appears to have two different representations in the zip file, one as "����" which is SJIS being interpreted as UTF8, and elsewhere as U+0082 and some Thai characters:
This second version is the output from unzip, with or without -O sjis option. There doesn't seem to be any way to convert this back to the original filename.
The original zip file can be downloaded here (25 MB), and its contents can be opened with the free program MikuMikuDance although the '.fx' file is used for MikuMikuEffect which requires several native libraries to run in Wine. But maybe someone can answer this without the zip file.
Do zip files store an alternate filename that is normally unused? Is backslashes being displayed as yen signs on Japanese computers related in any way to the filename not being used? If you take the string that shows up as 'Normalmap Effect\Skin\Figure_���̑�.fx' and pipe it to iconv -f sjis -t utf8, the output is 'Normalmap Effect¥Skin¥Figure_その他.fx'. Wikipedia talks about an 'extra field'; is this being used to store and retrieve the 'bad' filename?