activetk/nandemo-syoumei — explained in plain English
Analysis updated 2026-05-18
Encode a small file or piece of source code into the fixed-line kanji format defined by this spec.
Learn how a real world postal format's character and line constraints can double as a data encoding scheme.
Use the included web based converter to try encoding and decoding a file yourself.
Study the CRC-32, CRC-11, and parity techniques used to detect misread characters.
| activetk/nandemo-syoumei | feigaobox10/ai-economics-reader | lcbuaaliu/ai-jian-koubo | |
|---|---|---|---|
| Stars | 29 | 29 | 29 |
| Language | HTML | HTML | HTML |
| Setup difficulty | easy | easy | moderate |
| Complexity | 3/5 | 1/5 | 3/5 |
| Audience | general | general | vibe coder |
Figures from each repo's GitHub metadata at analysis time.
Documentation and the spec itself are written in Japanese.
This project is a playful, unofficial data format for encoding arbitrary files into Japan Post's certified mail service, known as naiyo shomei. That service normally exists to prove exactly what text was written in a letter, who sent it to whom, and when, which matters for legal situations like proving a contract was cancelled in time. The author noticed that the official rules never actually require the content to be readable natural language, so this project defines a way to encode any binary data, including source code, as if it were ordinary Japanese text that satisfies the postal service's formatting rules. Japan's certified mail format has strict physical constraints: A4 paper, horizontal writing, exactly 20 characters per line, and no more than 26 lines per page, using only kana, kanji, numbers, limited English letters, and standard punctuation. The spec built on top of these constraints defines a fixed structure. The first line of the first page is a signature line identifying the format. The second line holds the version number, data length, and checksums. Every following line carries a line number, a chunk of the actual data encoded as common-use kanji characters, and a two-character parity code for error detection, all expressed using Japan's kana and kanji character sets rather than raw bytes. The encoding treats each hiragana or katakana character as representing one of 46 possible values, and each of 2048 selected common kanji characters as representing an 11-bit value, giving enough range to pack arbitrary binary data, including a file name, into the fixed line format. A CRC-32 checksum covers the whole message, and a separate CRC-11 checksum protects the header fields, both encoded into kanji or katakana characters using the same scheme. A per-line parity code, calculated with exclusive-or across each line's characters, lets a reader detect if a single kanji was misread, though it cannot correct the error or catch two errors happening on the same line at once. The repository includes a working example converter, hosted as a webpage, that can encode a file into this format and presumably decode it back. The project is explicitly described as an unofficial joke and proof of concept, with a note asking people not to contact Japan Post about it.
An unofficial, playful format for encoding arbitrary files as Japanese text so they can technically be sent through Japan Post's certified mail service.
Mainly HTML. The stack also includes HTML, JavaScript.
The README does not state a license for this project.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly general.
This repo across BitVibe Labs
Verify against the repo before relying on details.