Skip to content
Novus Examples
zip631 B

ZIP - CP437 Legacy Name Encoding

The legacy twin: names encoded in IBM CP437 with the language-encoding flag clear, which is what the ZIP spec says an un-flagged name means. Decoding these bytes as UTF-8 produces mojibake or an outright decode error, which is exactly the bug this file is for.

Archive contents — 3 entrieszip
  • README.txt
  • café-menü.txt
  • nihongo-note.txt

Specifications

Seed
20260807
Members
3
General Purpose Bit11
false
Name Encoding
IBM Code Page 437 (the ZIP default when bit 11 is clear)
Note
the Japanese member name is transliterated - CP437 cannot represent it

Testing contract

Reference control
Scenario
Decode the member names with bit 11 clear, then compare against the UTF-8 twin archive.
Expected result
café-menü.txt round-trips only when the bytes are decoded as CP437; decoding them as UTF-8 either raises or yields mojibake.

What is a .zip file?

ZIP is a widely supported archive format that bundles multiple files and directories into one container, typically with per-file DEFLATE compression and a central directory index. It supports random access to individual entries without decompressing the whole archive. It underlies many document formats such as DOCX and EPUB.

How to use this file

Use an example ZIP to test archive extraction, central-directory parsing, per-entry decompression, and protection against path-traversal (zip-slip) during unpacking.

How to use this file for testing

“ZIP - CP437 Legacy Name Encoding” is a deterministic Novus Examples fixture for Conversion testing, Encoding detection. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.

Documented properties for this file: seed 20260807. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Archive fixtures are documented down to their member list (shown on this page) and are deliberately safe — no zip bombs, executables, or hidden payloads. Test extractors against nested, unicode, empty, and encrypted variants.

Code examples

unzip -l cp437-names.zip     # list members
unzip cp437-names.zip -d out/  # extract

Generated by generation/archives_p7.py. Free for any use, no attribution required — license.