← All postsProduct · · 2 min read

Hidden characters in copied text

Text you copy out of a chatbot, a PDF or a web page often carries characters you can't see. What they are, and how to find them.

Copy a paragraph out of a chatbot, a PDF or a web page, and you may get more than the words. Some characters don't show on screen at all, some spaces aren't ordinary spaces, and some letters look Latin but come from another alphabet. You won't see them. Software that looks for them will.

Which characters are we talking about?

Mostly characters that draw nothing at all. The zero-width space is the common one, along with the zero-width joiner and non-joiner, the soft hyphen, the word joiner and the byte order mark. Tag characters and stray variation selectors are rarer, and so are direction controls turning up in text that has no Hebrew or Arabic in it.

Spaces are the next group. A no-break space or a narrow no-break space looks like any other space, but your space bar doesn't type it.

The last group is look-alike letters, usually a Cyrillic а or о in the middle of an English word. On screen it's identical to the Latin letter.

How do they end up in my text?

Usually by copy and paste. PDFs and word processors use no-break spaces for layout, web pages are full of them, and chat apps hand over whatever their text contains. Some companies also add invisible characters to what their AI tools write, so they can recognize that text later, which is what people mean by a text watermark.

The character alone doesn't tell you which of these happened.

What does Semgram show me?

Each character by name and by place, so you can find it in your own text. A look-alike also gets the Latin letter it's standing in for. When the same character repeats in a row, it's listed once with a count, and a clean text is reported as clean.

Will normal characters get flagged?

They shouldn't. A joiner inside an emoji family is left alone, and so is the non-joiner a Persian word needs, the selector that turns a heart red, the tags that make up a flag, direction controls in Hebrew or Arabic, and Greek letters in a formula.

What about watermarks you can't see at all?

Some AI tools hide a pattern in which words they pick rather than in any one character. Only the tool's maker can check for that, because the check needs a key they keep. Semgram doesn't look for those patterns and reports characters only.

Keep reading