EPUB 3 - Metadata with Astral-Plane Characters
A title containing two characters above the Basic Multilingual Plane - a blue book and a musical clef - plus a Japanese description. Anything that counts characters as UTF-16 code units, or truncates a title to a byte length, splits a surrogate pair here.
- mimetype
- container.xml
- content.opf
- nav.xhtml
- style.css
- chapter1.xhtml
Specifications
- Seed
- 20260807
- Epub Version
- 3.0
- Opf Encoding
- UTF-8
- Astral Codepoints
- U+1F4D8, U+1D11E
- Utf16 Surrogate Pairs
- 2
- Description Script
- Japanese (kanji and kana)
Testing contract
Expected to pass- Scenario
- Display the title in a library, truncate it for a card, and use it to build a filename.
- Expected result
- Both astral characters survive display and truncation intact; no lone surrogate, replacement character, or mojibake appears at any truncation point.
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 - Metadata with Astral-Plane Characters” is a deterministic Novus Examples fixture for Encoding detection, Metadata testing, Internationalization. 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 astral-plane-characters.epub out.pdf # Calibre
unzip -l astral-plane-characters.epub # EPUB is a ZIPRelated files
- stringsApple .strings — UTF-16 LE with BOM (Japanese)The encoding fixture the .strings format needs: a Japanese catalog written as UTF-16 Little Endian with a byte-order mark, which is what Xcode has historically produced and what a UTF-8-only reader turns into mojibake or a decode error. Also carries full-width punctuation and an ideographic space for width and line-breaking tests.

- txtBidi — bracket mirroring in RTL paragraphs (Hebrew and Arabic)Mirroring is a rendering property of the bidi algorithm, not a transformation of the text: a U+0028 LEFT PARENTHESIS inside an RTL run is DRAWN as ')' while the stored byte never changes. These Hebrew and Arabic lines make that testable, and list the neutral characters that look like they should mirror but do not.

- txtBidi — where a mark is actually required (Arabic)Six Arabic sentences containing a Latin filename, a phone number, a version range, a mixed-script path, a percentage and a bracketed insertion — each shown first as a translator usually delivers it and then with the one invisible character that makes it render correctly. The two forms differ by exactly one code point.

- csvBilingual CSV — English→Arabic RTLBilingual EN→AR RTL CSV SAMPLE for spreadsheet CAT and RTL review tools.

- csvBilingual CSV — English→SpanishBilingual EN→ES CSV SAMPLE for spreadsheet-based localization workflows.

- jsonCrowdin-Style Export — FrenchCrowdin-shaped SAMPLE French bilingual export for TMS round-trip tests.

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