Zero-width characters: what they are and why they break copied text
Learn what zero-width spaces and joiners do, where they come from, and how to remove them before they break search, URLs, or forms.
Read guideA private Unicode workbench
Paste copied text into the editor, spot unusual punctuation or invisible characters, and normalize the safe fixes with one click. This is a browser-based cleanup tool for copy/paste reliability, plain-text compatibility, and predictable formatting.
Editor
We only run in your browser. No uploads, no logs.
A conservative process
No. This page only normalizes characters and spacing. You still need editorial review for structure, clarity, tone, and originality.
Never. Everything happens client-side, and refreshing the page clears the editor.
Yes. The character catalogue covers multiple scripts and punctuation systems. The current review build is English-only, but the cleaner still detects those characters.
Copied text often looks fine at first glance and still causes trouble in plain-text systems. Curly quotes in email, unusual bullets in markdown, or invisible spacing in CMS fields can all create avoidable friction.
The cleaner swaps those characters for plainer, more portable equivalents while leaving your wording untouched. The goal is not to rewrite the draft, but to make the text behave predictably in editors, CMS blocks, and JSON parsers.
Everything runs in the browser. Paste text, the tool highlights characters that fall outside the safe list, and Fix and Copy replaces only the red ones. Nothing is uploaded or stored.
Spacing gets cleaned too. Zero-width joiners, narrow no-break spaces, and stray ideographic gaps turn into standard spacing so search, indexing, and word counts behave.
Below is every group the tool fixes automatically. Each one shows the exact ASCII character that replaces the highlighted glyphs.
Rich editors use typographic quotation marks and guillemets for polished typesetting. We flatten them when plain-text portability matters.
“ ” „ ‟ 〝 〞 ﹁ ﹂ ﹃ ﹄ 「 」 「 」 『 』 « » 《 》 ״
Smart apostrophes are useful in typesetting but inconsistent in strict fields. We fold them into a predictable ASCII apostrophe.
‘ ’ ‚ ‛ ‹ › ՚ ՛ ՟ ऽ ׳
Lightweight dash variants turn into plain hyphens so commands, slugs, and phone numbers stay consistent.
‐ ‒ – − ֊ ־ ‧
Ellipsis glyphs look elegant but feel canned in plain messages. We expand them into three dots you would actually type.
… ⋯ ᠁
Full-width stops and script-specific endings become regular periods so sentences land softly instead of dramatically.
。 。 . ។ ៕ ። ᠃ ။ ། ༎ · । ॥ ॰
Comma lookalikes turn into the workhorse comma, keeping lists and CSV exports readable.
، 、 、 , ፣ ၊ ߸ ᠂ ՝
Full-width and script-specific colons collapse into the familiar ASCII version, so time stamps and ratios read normally.
: ៖ ፥ ׃
We swap ornate semicolons for the classic version so code snippets and lists stay legible.
; ؛ ፤
Curved or inverted question marks flatten into the everyday symbol so sentences don’t scream template.
? ¿ ؟ ፧ ߹ ; ՞
We tone down inverted or stylistic exclamations by replacing them with the straight ASCII version.
! ¡
Interrobangs and double punctuation combos collapse into the plain pairs people expect (‽→?!, ⁇→??, etc.).
‽ ⸘ ‼ ⁉ ⁈ ⁇
Wave dashes become the humble tilde so plain-text channels receive a predictable ASCII character.
〜 ~
Non-standard spacing collapses into a regular space so line wraps, counters, and search behave predictably.
U+00A0 (non-breaking space) U+2009 (thin space) U+202F (narrow no-break space) U+3000 (ideographic space) U+3164 (Hangul filler)
Zero-width markers vanish—they add nothing except a sterile, machine-cut feel and broken search results.
U+200B (zero-width space) U+200C (zero-width non-joiner) U+200D (zero-width joiner) U+2060 (word joiner) U+FEFF (byte-order mark)
Some glyphs still look suspicious, yet we leave them highlighted so you can decide whether to keep their emphasis or swap them manually.
These have no safe ASCII twin but still deserve a second look. They stay highlighted in yellow until you decide whether to keep the emphasis or replace it manually.
— ― ⸺ ⸻ ⋮ ⋰ ⋱ ᠅ • ‣ ⁃ ◦ ∙ · ・ ・ ፨ ჻ ฯ ๆ ๚ ๛ ـ ۩ † ‡ § ¶ ‰ ‱ ※ ⁂ ‖ ¦ ‸ ′ ″ ‴ ⁗ ׀
The goal is straightforward: fix the red highlights, review the yellow ones, and keep the draft portable across the systems where you actually need to use it.
A minute of cleanup removes copy/paste friction and keeps your text predictable for editors, parsers, and readers alike. Paste, review, normalize, and then do the final editorial pass.
Field notes
Tested explanations, examples, and checklists for Unicode, punctuation, whitespace, and cross-system paste failures.
Learn what zero-width spaces and joiners do, where they come from, and how to remove them before they break search, URLs, or forms.
Read guideUnderstand when curly quotes, fancy dashes, ellipses, and other smart punctuation should be kept or converted to plain ASCII.
Read guideA practical guide to non-breaking spaces, narrow no-break spaces, tabs, and other odd whitespace that breaks copied text.
Read guideA practical guide to why copied text fails in ATS forms, CMS editors, markdown, email, and other systems even when it looks fine on screen.
Read guideUse this practical pre-publish checklist to catch Unicode punctuation, weird whitespace, invisible characters, and formatting issues before you submit or publish copied text.
Read guideA practical field guide to identifying hidden Unicode code points in copied text and confirming which character is causing a failure.
Read guideDecide whether to preserve, replace, flag, or remove a Unicode character without flattening meaningful typography or language shaping.
Read guideDiagnose line breaks, soft hyphens, odd spacing, and OCR substitutions before reusing text copied from PDFs or scanned documents.
Read guide