Paste text from ChatGPT, Claude, Word, or a web page to check it for characters you cannot see: zero-width spaces, narrow no-break spaces, soft hyphens, and hidden tag characters. Each one is marked where it sits, and you copy the text back without them, with Markdown like **bold** turned into text LinkedIn shows if you want. Nothing leaves your browser.
Everything runs in your browser. Nothing you paste leaves this page. Nothing to paste?
Hidden characters
0
Paste text to check it. Each hidden character is listed here and marked where it was.
Where they were
Each tag marks a character you could not see. Tap or hover over one for its name.
Paste your text
Paste text from ChatGPT, Claude, Word, Google Docs, or a web page into the box. It is checked as soon as it lands.
See what was hidden
Each hidden character is listed with its name and how many there were, and marked in place under the tool, so you can see exactly where it sat.
Copy the clean text
Press Copy text and paste the result wherever it is going. The words, line breaks, and emoji are unchanged; only the hidden characters are gone.
This is the draft behind “Try an example”: a LinkedIn post with the Markdown a chatbot’s copy button leaves in, plus the kind of hidden characters that copying through web pages and documents picks up. Each tag marks a character you would not see.
| Found | How many | What happened |
|---|---|---|
| Zero-width spaceU+200B | 2 | Removed |
| Soft hyphenU+00AD | 1 | Removed |
| Word joinerU+2060 | 1 | Removed |
| Byte order markU+FEFF | 1 | Removed |
| Narrow no-break spaceU+202F | 1 | Replaced with a normal space |
| No-break spaceU+00A0 | 1 | Replaced with a normal space |
| List markers (- or *) | 3 | Now • |
| Bold markers (**) | 1 | Now bold |
The joiner inside the emoji at the end stays, because without it the emoji falls apart into two.
Unicode, the standard behind every character you type, includes characters that take up no space at all, and spaces that look like a normal space but are not one. They exist for good reasons: a no-break space keeps “10 km” on one line, a soft hyphen marks where a long word may break, and a zero-width joiner holds some emoji together. You cannot see any of them, so they come along whenever text is copied.
This is what the remover looks for, and what it does with each one:
| Character | Code | What happens |
|---|---|---|
| Zero-width space | U+200B | Removed |
| Zero-width joiner and non-joiner | U+200D, U+200C | Removed, except inside emoji and between letters that need them |
| Word joiner | U+2060 | Removed |
| Byte order mark | U+FEFF | Removed |
| Soft hyphen | U+00AD | Removed |
| No-break space | U+00A0 | Replaced with a normal space |
| Narrow no-break space | U+202F | Replaced with a normal space |
| Thin, hair, en, and em spaces | U+2000 to U+200A | Replaced with a normal space |
| Direction marks | U+200E, U+200F, and others | Removed, except in Arabic and Hebrew text |
| Tag characters | U+E0000 to U+E007F | Removed, except inside flag emoji |
| Runs of variation selectors | U+FE00, U+E0100, and others | Removed; a single one styling an emoji like ❤️ stays |
| Control characters | U+0000 to U+001F, and others | Removed, except line breaks and tabs |
Paste the text into the box above. Checking happens as it lands: the number at the top of the results is how many hidden characters the text has, the list names each kind and how often it appears, and the marked copy underneath shows where each one sits. Nothing changes until you press Copy text, so you can use it purely as an invisible character detector and keep your original.
A result of zero means the text has nothing hidden in it. Some characters are listed as kept, such as the joiner inside an emoji like 👩💻, because the text needs them to display correctly.
ChatGPT and Claude write in Markdown: **two asterisks** around a phrase make it bold,
### starts a heading, and a dash starts a list item. The chat window shows the formatting, but the
copy button hands over the Markdown itself as its plain text version. LinkedIn does not read Markdown, so in a post
those symbols stay symbols.
Check the Markdown box under the text field. Bold and italic become the Unicode letters the LinkedIn text formatter uses, which is the only styling a LinkedIn post keeps. Headings become bold lines, list dashes become bullets, links become the text followed by the address, and code marks and dividers are removed. A hashtag is not a heading, so #Hiring stays as it is.
On 23 September 2026 we asked ChatGPT (a temporary chat, default model) and Claude (an incognito chat, Opus 5.5) for the same eight LinkedIn posts, and recorded exactly what each copy button put on the clipboard, along with the text shown on screen.
| In the copied text | ChatGPT | Claude |
|---|---|---|
| Hidden characters | 0 of 8 | 0 of 8 |
Markdown bold (**) | 8 of 8 | 7 of 8 |
| Markdown list dashes | 5 of 8 | 0 of 8 (it wrote • bullets) |
| Em dashes | 7 of 8 | 0 of 8 |
| Curly quotes | 8 of 8 | 0 of 8 |
Neither added a single hidden character, on the clipboard or on screen. The one non-printing character in all sixteen answers was the selector that tells ❤️ to display as an emoji, which belongs to it. What both copy buttons did add was Markdown. Eight answers each is a small sample from one day, so treat it as a snapshot, not a rule.
The question comes from April 2025, when Rumi reported that longer answers from OpenAI’s o3 and o4-mini models contained narrow no-break spaces where ordinary spaces belonged, and suggested they were a watermark. OpenAI said they were not a watermark but a side effect of how the models were trained, and later tests stopped finding them. Our own test above found none, and the full write-up is in Does ChatGPT watermark text?
As of September 2026, OpenAI’s help page on provenance signals lists watermarks for ChatGPT images and audio, not text, and says the goal is to add text under the EU’s Code of Practice on AI-generated content. When that happens, expect it to work the way Claude’s and Gemini’s watermarks do: through which words are picked, not through characters a tool like this could remove.
So a hidden character is not proof that a text came from ChatGPT, and a text without any is not proof that it did not. Hidden characters also come in through ordinary copying: web pages use no-break spaces and soft hyphens to control where lines break, and word processors add their own. Whatever put them there, the list above shows exactly what is in your text.
It does not touch a single visible character unless you check the box for dashes and quotes. The words, the line breaks, the emoji, and the bold or italic letters from the LinkedIn text formatter all stay as they were. That also means it does not make AI text read like a person wrote it: detectors judge the wording, and text watermarks, such as Google’s SynthID in Gemini and the one Anthropic added to Claude in August 2026, are carried in word choice, with no hidden characters at all. The AI content detector shows which lines read as generated. For images, the AI metadata remover does the same job for the Content Credentials that put a CR tag on LinkedIn.
Cleaning a pasted draft fixes the characters. The wording is the harder part, and it is what Depost AI works on: it learns your voice from the posts you have already written, drafts new ones from your analytics, and publishes them through LinkedIn’s official API once you approve them.
Content CreationDoes ChatGPT Watermark Text? What We Found in 16 AnswersDoes ChatGPT hide a watermark in the text it writes? What OpenAI says, where the hidden character rumor came from, what we found in 16 copied answers from ChatGPT and Claude, and what actually comes along when you paste a draft into LinkedIn.
LinkedIn HacksThe LinkedIn CR Tag: What It Means and How to Remove ItThe CR tag on a LinkedIn image means the file carries Content Credentials. What they say, which tools add them, how to check an image before you post, and how to remove the CR tag without losing quality.
LinkedIn Hacks15 Best LinkedIn AI Tools in 2026, Ranked and PricedFifteen LinkedIn AI tools ranked, with what each one covers beyond writing the post, what it sends from your account without you, how the price scales past one person, and current monthly prices.LinkedIn Text Formatter
Bold, italic, and list formatting that survives the LinkedIn composer, which strips almost everything you paste into it.
AI Content Detector for LinkedIn
Checks a draft for the patterns that make a post read as generated, and names the line that gave it away.
AI Metadata Remover
Checks and removes the C2PA Content Credentials behind LinkedIn’s CR tag, plus EXIF, GPS, and AI prompts, from images and videos, with the pixels left exactly as they were.
Brief your team once. It studies, plans, writes, designs, and schedules. You approve.
Your brief comes with you: once you're set up, it's the team's first job.
7 days free · Strategy in your first 15 minutes · Cancel anytime