Skip to main content

Contact

What are you interested in?

Typesetting hygiene · as of August 2026

Cleaning up AI text.

The complete character table of typographic artefacts from AI text generators, their Unicode code points, the right replacement — and the verified answer to whether ChatGPT and Claude texts carry a watermark.

Have your content reviewed

What people take for a "watermark" in AI text is almost always typography: narrow no-break spaces, em dashes, curly quotation marks and the occasional zero-width character picked up while copying. Those characters are not a marker. They are the result of training material, tokenisation and Markdown conversion. Find and replace removes them completely and without loss — the table further down lists every character with its code point and the right replacement.

The question of a real watermark is a separate one. Since August 2026 it has a new answer, and we give the verified position in the first section below. The purpose of this page is typesetting hygiene: content should flow cleanly into a CMS, a newsletter, a PDF and a print layout, without torn line breaks, broken search runs and foreign characters in the source. How reliable detection tools are in the first place is covered on detecting AI text.

Do ChatGPT and Claude texts carry a watermark?

There is no watermark made of hidden special characters — but since August 2026 there is a statistical watermark in the word choice at individual providers. The position as of 19 August 2026:

  • Claude (Anthropic): Anthropic announced on 11 August 2026 that Claude output carries a watermark based on Google DeepMind's SynthID-Text method, and set out how it works on 14 August 2026. Models released from 2 August 2026 ship with it; according to the provider, older models are being retrofitted over the following months. The method changes the source of randomness for word choice during generation. Anthropic states explicitly that nothing is added to the text and that no hidden characters are created.
  • Gemini (Google): Gemini text has carried the same SynthID-Text watermark since 2024. Google's SynthID Detector portal can check it, but since its launch at Google I/O in May 2025 it has been accessible only through a waiting list for journalists, media professionals and researchers — and it recognises only content carrying Google's own key.
  • ChatGPT (OpenAI): no watermark has been shipped for text to date. Images from ChatGPT and the API carry SynthID as well as C2PA content credentials, and so does speech output since July 2026.

Two things follow in practice. First: none of the characters you replace on this page is a watermark — replacing them changes nothing about a statistical watermark, because that sits in the sequence of chosen words across longer passages. Anthropic itself describes light editing as probably not removing it completely, whereas rewriting every word does. Second: for text there is currently no generally accessible checking service anyway. Anyone who finds a "watermark checker" online is, in practically every case, testing exactly the special characters in the table below.

The driver behind the development is regulatory: Article 50 of the EU AI Act requires machine-readable marking of synthetic content and has applied since 2 August 2026. Switzerland is not bound by it; Swiss providers with EU customers effectively are.

Why do these special characters appear in the first place?

Three independent causes produce the characters — and all three are unspectacular.

First, the training material. Language models learn from professionally typeset text: newspaper articles, specialist books, documentation, publisher websites. That is where an em dash stands in for a hyphen, where curly quotation marks replace straight ones, where a no-break space separates a figure from its unit. A model reproducing that typography is doing nothing wrong — it is imitating good typesetting. That users then find the same characters in a form field or a CMS where they get in the way is a problem of context, not a fault in the model.

Second, tokenisation. A model works with tokens, not letters. A narrow no-break space is a token like any other and gets chosen when it is probable within the learned pattern. In OpenAI's developer community it was documented in 2025 that a GPT-5 model, in certain constellations, frequently emitted the narrow no-break space U+202F instead of a normal space, which made text look cramped in some macOS applications. Oddities of this kind are side effects of tokenisation, not a marker.

Third, conversion. Chat interfaces render their output as Markdown. When you copy from the rendered window, the clipboard receives the rendered version rather than the raw format: bullet characters instead of hyphens, an ellipsis as a single character, curly quotation marks, occasionally a byte order mark or a zero-width space at the start of a block. Asking for the raw version instead, or using the button that copies the Markdown, already solves a large part of the problem.

How do I replace the characters in Word, Google Docs and a code editor?

All three environments handle this with find and replace; only the notation for the characters differs. Always work on a copy, and switch on the display of formatting marks first.

  • Microsoft Word: in the search field, Word accepts the notation ^u followed by the decimal character code — ^u8239 for U+202F, ^u8203 for U+200B, ^u65279 for U+FEFF, ^u8288 for U+2060. Common characters have shortcuts: ^s for the no-break space, ^+ for the em dash, ^= for the en dash. Replace in individual steps rather than in one sweeping run.
  • Google Docs: under Edit, Find and replace, enable the regular-expression option. Google Docs uses RE2 syntax with code points written as \x{202F}. Two passes have proven themselves in practice: replace [\x{00A0}\x{2009}\x{202F}] with a normal space, then replace [\x{200B}-\x{200D}\x{2060}\x{FEFF}] with nothing.
  • Code editor or CMS editor: in VS Code, Notepad++ or Sublime Text, switch on regex search and work with [\u00A0\u2000-\u200F\u2028\u2029\u202F\u205F\u2060\uFEFF]. This is the fastest route, because you can step through each match individually before replacing.
  • The plain-text special case: when only the content matters, the detour through a plain-text editor helps — paste the text in, copy it back out. That strips formatting and some of the special characters, but not all of them: em dashes, curly quotation marks and no-break spaces survive this route, because they are real characters and not formatting.

Anyone processing larger volumes regularly should save the replacement list once as a macro or a script. In our own projects, the clean-up runs as a step before the CMS import, so that foreign characters never reach the database in the first place. What such an editorial process looks like overall is described in our article on AI content strategy for Swiss SMEs.

Which characters should you deliberately keep?

Some of these characters do a real job — delete them wholesale and you swap a cosmetic problem for a factual error. Four cases in which we deliberately replace nothing:

  • No-break space between a figure and its unit. "10 kg", "25 %", "CHF 3'000" should not break across a line. Here U+00A0 is the right choice and not an artefact. Only replace it where it sits in running text without a function.
  • En dash in ranges. "2024–2026" or "CHF 3'000–25'000" are typographically correct. The em dash U+2014, by contrast, is unusual in German-language typesetting; there it should be replaced by an en dash with spaces or by a comma. In English typesetting both conventions exist — decide once and apply it consistently.
  • The Swiss thousands separator. The apostrophe in "CHF 1'500" is the Swiss standard. It must be neither deleted nor replaced with a full stop, because that changes the amount.
  • Quotation marks according to house style. Swiss Standard German uses the angled guillemets «…», Germany uses the low-high curly marks, English uses "…" or '…'. Decide once for your company and apply it consistently, instead of replacing characters at random.

One good final check: search the cleaned text for double spaces and for places where two words have run together. Both are the typical collateral damage of a sweep that was too broad.

Does cleaning up change anything about disclosure?

No — clean formatting is typography and says nothing about whether and how the use of AI must be disclosed. Whether disclosure is required depends on the rules of whoever receives the text: universities and universities of applied sciences set this in their examination regulations, clients in contracts, editorial teams in their guidelines, public-sector buyers in tender conditions. These requirements differ considerably, they keep changing, and they belong settled before delivery rather than after. For visibility in Google, disclosure is not mandatory; the documentation merely recommends providing information about how content came about where that adds value for readers. How this is worded in detail is on AI content and the Google guidelines.

What cleaning up does not achieve

The limits of this work are narrow, and anyone expecting more from it loses time. Five things a cleaned-up text still does not have:

  • No effect on AI detectors. Detectors measure perplexity, sentence-length variation and stylistic patterns, not character encoding. Immaculately typeset text can still be classified as machine-written.
  • No removal of a statistical watermark. That sits in the word choice, not in the characters. Character replacement does not touch it.
  • No check of the content. Invented figures, non-existent studies and misattributed quotations survive every clean-up run. That check has to be done by a person who knows the subject.
  • No better visibility. Google assesses usefulness, substance and purpose. Clean typography is a matter of course, not a ranking factor.
  • No better text. Uniform sentences, filler phrases and unearned adjectives stand exactly where they stood before. What helps against those is on humanising AI text.

And one honest observation: if you found this page because a text "looks like AI", the character encoding is almost never the real problem. The real problem is usually a lack of specifics. We tend to build websites and content so that the substance comes first — what that looks like is visible in our work and on the service page for SEO.

Character table: artefact, code point, replacement

Unicode code pointRecommended replacement
Narrow no-break spaceU+202F (dec. 8239)Normal space U+0020
No-break spaceU+00A0 (dec. 160)Normal space — except before units and currencies
Thin spaceU+2009 (dec. 8201)Normal space U+0020
Zero-width spaceU+200B (dec. 8203)Delete without replacement
Zero-width non-joiner / joinerU+200C, U+200DDelete without replacement
Word joinerU+2060 (dec. 8288)Delete without replacement
Byte order markU+FEFF (dec. 65279)Delete without replacement
Em dashU+2014 (dec. 8212)En dash with spaces, or a comma
En dashU+2013 (dec. 8211)Keep in ranges, otherwise hyphen U+002D
Curly quotation marksU+201C, U+201D, U+201EHouse style: guillemets «» (U+00AB, U+00BB) or straight quotes
Right single quotation mark as apostropheU+2019 (dec. 8217)Straight apostrophe U+0027, except as a thousands separator
Ellipsis as a single characterU+2026 (dec. 8230)Three individual full stops
Bullet character in running textU+2022 (dec. 8226)A real list element in the CMS
Non-breaking hyphenU+2011 (dec. 8209)Normal hyphen U+002D

Frequently asked questions about cleaning up AI text

There is no watermark made of hidden special characters. What has existed since August 2026 is something different: Anthropic announced on 11 August 2026 that Claude output carries a watermark based on the SynthID-Text method, which sits in the choice of words during generation. Anthropic states explicitly that nothing is added to the text and that no hidden characters are created. Google has marked Gemini text the same way since 2024. OpenAI has still not shipped a watermark for ChatGPT text.

For three unglamorous reasons. First, models mirror their training material: professionally typeset text from publishers and newsrooms contains curly quotation marks, em dashes and no-break spaces. Second, models work with tokens, not letters; a narrow no-break space is just another token to them. Third, characters appear during conversion: what the chat window renders as Markdown arrives in your clipboard with bullet characters, a single-character ellipsis and typographic punctuation.

Through find and replace using Unicode codes. In the search field Word accepts the notation ^u followed by the decimal character code: ^u8239 for the narrow no-break space, ^u8203 for the zero-width space, ^u65279 for the byte order mark. Common characters have shortcuts: ^s for the no-break space, ^+ for the em dash, ^= for the en dash. Replace step by step with formatting marks switched on, so you can see what disappears.

Yes, via Edit, Find and replace with the regular-expression option enabled. Google Docs uses RE2 syntax, which understands Unicode code points written as \x{202F}. An expression such as [\x{00A0}\x{2009}\x{202F}] catches the narrow and no-break spaces in one pass and is replaced with a normal space; [\x{200B}-\x{200D}\x{2060}\x{FEFF}] catches the zero-width characters and is replaced with nothing. Afterwards, spot-check numbers and units.

All the ones doing a job. The no-break space between a figure and its unit stops 10 kg breaking across a line; the same goes for CHF and the amount. The en dash belongs in ranges such as 2024 to 2026 and in Swiss amount notation. The apostrophe as a thousands separator in CHF 1'500 is the Swiss standard and must not be optimised away. Replacing every special character blindly creates new errors instead of clean typography.

That depends on who receives the text, and the question belongs before publication, not after. Universities, clients, editorial teams and public-sector buyers each set their own rules, and the requirements differ considerably. For visibility in Google, disclosure is not mandatory; Google merely recommends providing information about how a piece of content came about where that helps readers. Clean formatting changes nothing about this question — it is typography, not a statement about origin.

Barely. Detectors measure perplexity, sentence-length variation and stylistic patterns, not character encoding. A text without a single special character can still be classified as machine-written, and a text full of em dashes can pass as human. A statistical watermark does not disappear through character replacement either, because it sits in the word choice. Cleaning up is typesetting hygiene: it prevents broken line breaks, failed find-and-replace runs and faulty imports into a CMS or newsletter tool.

Want your content to land cleanly in your CMS?

We set up editorial and import processes so that foreign characters never reach the database — and while we are at it, we check whether your content actually holds up.

Have your content reviewed