JSON BOM and Hidden Characters
TL;DR: Invisible characters like BOM (\uFEFF), zero-width spaces, and non-breaking spaces
can make JSON look fine in editors but fail to parse or compare correctly at runtime.
Where These Characters Come From
- Copy-pasting JSON from terminals or web pages.
- Saving files with a UTF-8 BOM in some editors.
- Accidentally inserting non-breaking spaces instead of regular spaces.
Why They Cause Issues
Some parsers handle BOM and hidden characters gracefully, while others do not. Even when parsing works, string comparisons and signatures (like HMACs) can fail because the payload is not byte-for-byte identical.
Detect Hidden Characters with JSON Runtime Checker
The JSON Runtime Checker scans for BOM, zero-width characters, and non-breaking spaces and surfaces them as risky patterns so you can clean the payload before debugging further.
Check for Hidden Characters
Paste your JSON into the JSON Runtime Checker to see if invisible characters are part of the problem.