Zero-width and invisible
ZERO WIDTH NO-BREAK SPACE (U+FEFF)
The byte order mark, U+FEFF, which editors and error messages usually spell ufeff. At the very start of a file it announces the encoding; anywhere else it is an invisible, non-breaking nothing that Unicode has deprecated for that use since 3.2.
- Codepoint
U+FEFF- Also written as
ufeff\ufeff- Category
- Zero-width and invisible
- Removed by default
- Yes
- Governing option
- No option needed
- Can be load-bearing
- No
Copy and paste U+FEFF
To copy and paste ZERO WIDTH NO-BREAK SPACE (U+FEFF), press the button: the character itself goes to your clipboard, and Ctrl+V (Cmd+V on a Mac) pastes it anywhere you can type.
Where it comes from
Windows editors, Excel exports and anything that writes "UTF-8 with BOM". Concatenating several such files leaves a BOM in the middle of the result. It also arrives by paste: copy a spreadsheet cell, a line out of an editor or the contents of a web form and the text can begin with an invisible character, so the search box looks perfectly ordinary and the query fails anyway.
Why it matters
A leading BOM breaks JSON parsers, YAML front matter, shell shebangs and CSV headers; a BOM in the middle is simply an invisible character that defeats exact-match comparison. It is also the reason a config file "looks fine" but will not load.
Before and after
The invisible first character is why `JSON.parse` refuses this string.
The character is shown as a labelled chip so you can see where it sits. In your text it draws nothing at all.
When it is legitimate
As the first character of a file, as an encoding signature, which is a property of the FILE, not of the text. Once the text is in a paste box, there is no legitimate BOM left.
How to remove it
The default pass removes it, wherever it sits. Ghostchars works on text, so it treats the leading BOM as text too.
Working in a file rather than a paste? The document report for .docx, .odt and .html finds it inside the file, together with hidden runs and tracked changes, without you having to open it. If the question is what the rest of the writing does rather than what this one character does, measure sentence-length variation and see where each habit sits, with no score and no claim about who wrote the text.
Is it an AI watermark?
Not a watermark
No. A BOM is an encoding artefact produced by editors and export pipelines. It says something about the tool that saved the file and nothing about who wrote the words.
No connection to machine-generated text. It comes from software, from a keyboard, or from a person.
Questions
Why does the text I pasted start with an invisible character?
Almost always a BOM that travelled with the copy: whatever you took the text from wrote U+FEFF at the front, and it came along with every visible character behind it. The default pass removes it. To see it before you clean, paste the text here and switch to the reveal view, which marks the ufeff sitting in front of the first letter.
Why does my JSON fail to parse?
A leading BOM is a character before the opening brace. Most JSON parsers reject it as an unexpected token, and the error points at position 0 with nothing visible there.
Is it the same as a word joiner?
They behave the same way in the middle of text. Unicode deprecated U+FEFF for that use and made U+2060 WORD JOINER the correct character, leaving U+FEFF as the byte order mark only.
Check your own text
Paste anything into the cleaner to see every hidden character it contains, with position, codepoint and what happens to each one. Nothing is uploaded.
Check your own textClean it in Chrome as you pasteClean it on your Mac with one keystrokeAll characters