I have a program called zipdetails that dumps the full metadata of a zip file. The part that will interest you is it include an optional ASCII hex dump of all the items of metadata, including the filename.
For example, create a zip file with a UTF-8 filename
$ echo abcd >Café $ zip -X test.zip Café adding: Café (stored 0%)
Dump the contents
$ perl zipdetails -v test.zip 0000 0004 50 4B 03 04 LOCAL HEADER #1 04034B50 0004 0001 0A Extract Zip Spec 0A '1.0' 0005 0001 00 Extract OS 00 'MS-DOS' 0006 0002 00 08 General Purpose Flag 0800 [Bit 11] 1 'Language Encoding' 0008 0002 00 00 Compression Method 0000 'Stored' 000A 0004 58 AD F5 58 Last Mod Time 58F5AD58 'Sun Jul 21 22:42:48 2024' 000E 0004 AC A4 8A 58 CRC 588AA4AC 0012 0004 05 00 00 00 Compressed Length 00000005 0016 0004 05 00 00 00 Uncompressed Length 00000005 001A 0002 05 00 Filename Length 0005 001C 0002 00 00 Extra Length 0000 001E 0005 43 61 66 C3 Filename 'Café' A9 ...
You can use the --encoding option to tell zipdetails what encoding to use when it displays the filename. Note that this will not change the ASCII hex values shown for the filename.
-Uis meant for stopping the interpretation of UTF-8, but might work for you?