Words in the pre-Unicode fallback
Text parked in the slot RTF reserves for readers that predate Unicode — discarded by every modern reader, emitted by naive extractors.
How the text is hidden
RTF writes a non-ASCII character as \uN, the code point a Unicode-aware reader draws, followed by the characters a pre-Unicode reader shows instead; \ucN declares how many of those follow each escape. A conforming reader discards them. Raising \uc makes the discarded run long enough to hold a sentence, and the characters sit in the file as ordinary literal text.
Why a model still reads it
The split is the concealment: Word, WordPad, LibreOffice and this engine drop the fallback, while a reader that strips control words but keeps literal text emits it. So the human sees the code points and a downstream loader can see the fallback instead.
What we do about it
The parser tracks \uc as inherited group state (clamped, because the number comes from the file), and after each \uN it takes that many characters off the front of the following literal span — or one per \'xx escape, which is the shape a real writer emits — and collects them rather than emitting them. At the end the collected text is joined, whitespace-collapsed, and reported as its own run only when it contains two or more consecutive letters; that run carries flags.rtfUnicodeFallback and the reason non-rendered-part. The pack rule is keyed on the flag rather than the reason — the rule comment records that keying on the reason made it fire on metadata and ignorable destinations in files containing no \uN at all — and is medium with action flag, so the recovered words are handed back rather than removed.
How often it fires
0% of 195 real RTF files from four national open-data portals, measured 2026-08-22.
This is an alert-volume number and nothing else. It says how often the alarm sounds on documents as found — not how often it is right, and not whether what it found was harmless. Documents as found may themselves carry concealment. Read it against the population named above rather than as a property of documents in general.
Check your own file
Three commands: a key, credit, a verdict.
Start with the API