What ͏ means
It changes text processing without adding a visible mark.
Unicode normalization puts equivalent text into a consistent form and may reorder combining marks. CGJ blocks that reordering, preserving mark order when it matters. In Slovak sorting, c͏h can stay separate instead of sorting as the ch contraction.
The Unicode proposal submitted on 2000-08-10 aimed to mark local grapheme boundaries: places where a writing system treats several encoded characters as one text unit. It compared this behavior to an Indic virama, a mark that can link consonants, and also addressed accents spanning multiple letters and language-specific sorting.
Does CGJ join graphemes?
No. It preserves mark order; it does not connect letters.
Despite its name, CGJ does not create graphemes, extend an accent across arbitrary letters, request ligatures, affect cursive joining, or prevent line breaks.
Technical: CGJ marks a text-processing instruction, not conversational tone.
Its blank appearance does not mean the text contains nothing there.
Drift: CGJ was originally assigned a line-break role to keep adjacent characters in one graphemic unit. That role became obsolete in Unicode 4.0; the mistaken line-break assignment was corrected in Unicode 17.0.
Part of the collection
What it means when someone sends it to you
4 readingsBlocks canonical reordering, keeping their encoded order through normalization.
Don't confuse it with
2 ZWJ requests connected shaping; CGJ has no such effect.
ZWNJ can suppress a connection or ligature; CGJ instead preserves mark order.
Combination ideas
2Questions people ask
1Can I delete a CGJ from text?
Not safely without checking its purpose. CGJ may preserve a combining-mark distinction or a sorting and search rule; deleting it can erase that distinction.
How to type or find ͏
- Also called
- CGJ
- Search it as
- invisible character · hidden text character · combining mark order · Unicode normalization · Slovak ch sorting · Hebrew mark order · tréma umlaut sorting
- Shows up in
- Anything that takes text · its shape is whatever your font draws
͏\034F͏ at the intended position in the string.\u034F.\u034F.Codes and encoding1 code points
A visible symbol can contain several code points. JS .length counts UTF-16 units; UTF-8 counts bytes.


