Skip to content
Novus Examples
epub2.2 KB

EPUB 3 - UTF-8 BOM on Every XML Part

The package document, the navigation document and the chapter each begin with a UTF-8 byte order mark before the XML declaration. Legal, and the classic reason a strict parser reports content before the prolog on a file that looks perfectly fine in an editor.

Archive contents — 6 entriesepub
  • mimetype
  • container.xml
  • content.opf
  • nav.xhtml
  • style.css
  • chapter1.xhtml

Specifications

Seed
20260807
Epub Version
3.0
Bom Bytes
EF BB BF
Parts With Bom
content.opf, nav.xhtml, chapter1.xhtml
Declared Encoding
UTF-8
Container Xml Has Bom
false

Testing contract

Expected to recover
Scenario
Parse each XML part in the container with a strict XML parser.
Expected result
The BOM is consumed as an encoding signature rather than as document content; no part reports a stray character before the XML declaration, and the title reads correctly.

What is a .epub file?

EPUB is the open e-book standard, a ZIP archive containing XHTML content documents, CSS, images, and a package manifest describing reading order and metadata. It supports reflowable text that adapts to screen size and is supported by most e-readers except Kindle natively. It is the dominant format for distributable e-books.

How to use this file

Use an example EPUB to test e-book parsing, ZIP-package and manifest handling, reading-order and metadata extraction, and rendering in e-reader applications.

How to use this file for testing

“EPUB 3 - UTF-8 BOM on Every XML Part” is a deterministic Novus Examples fixture for Encoding detection, Metadata testing, Error handling. UTF-8, UTF-8-BOM, UTF-16, and Latin-1 files with documented encodings and line endings for testing charset detection.

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.

E-book fixtures are structured archives documented down to their spine and manifest. Test readers and converters, and where a valid↔intentionally-invalid pair exists, assert graceful handling of the malformed container.

Code examples

ebook-convert bom-on-every-xml-part.epub out.pdf   # Calibre
unzip -l bom-on-every-xml-part.epub                # EPUB is a ZIP

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