Skip to content
Ghostchars

Zero-width and invisible

MONGOLIAN VOWEL SEPARATOR (U+180E)

A Mongolian orthographic control that was reclassified in Unicode 6.3: it used to be a space, and is now a zero-width format character.

Codepoint
U+180E
Removed by default
Yes
Governing option
No option needed
Can be load-bearing
No

Where it comes from

Mongolian text, and — much more often — from lists of "invisible characters" on the web, because the reclassification left it behaving differently in old and new software.

Why it matters

Its history is exactly what makes it useful for hiding: some libraries still treat it as whitespace and trim it, others treat it as a format character and keep it. Two different pieces of software can disagree about whether your string contains it.

Before and after

BeforeinU+180Evisible
Afterinvisible

Zero width in modern software, a space in older software — the same bytes, two renderings.

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

Between the vowel and the stem in traditional Mongolian script.

How to remove it

The default pass removes it, unconditionally — Ghostchars does not try to guess whether the surrounding text is Mongolian.

Is it an AI watermark?

Used to hide data — not a watermark

No. It is a script control with an unusually messy history, which is what makes it attractive to people hiding data. It carries no authorship signal.

A known carrier for deliberately hidden payloads. Someone put it there on purpose, which is a different question from who wrote the words.

Questions

Is it a space or not?

Since Unicode 6.3 it has zero width and is a format character. Software written against older versions may still treat it as whitespace, which is the source of most of the confusion.

Will cleaning break Mongolian text?

Ghostchars removes it unconditionally, so real Mongolian orthography is affected. If you are editing Mongolian, work on a copy and check the result.

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 textAll characters