TextWash

Вставьте текст — каждый невидимый символ будет подсвечен с его Unicode-именем, а чистая копия соберётся сама. Пример уже загружен. Всё происходит в вашем браузере: текст никуда не отправляется.

Input

X-ray hover a highlight for details

Cleaned output copied ✓

Cleaning rules

Текст выглядит правильно — и не работает

Скопированный текст приносит с собой символы, которых не видно: пробел нулевой ширины (U+200B), неразрывный пробел (U+00A0), узкий неразрывный пробел (U+202F), мягкий перенос (U+00AD), метку порядка байтов BOM (U+FEFF), направляющие метки письма. На экране их нет; для программ они — обычные символы. Код перестаёт компилироваться, поиск не находит слово, которое «вот же оно», сравнение строк говорит «не равно» на одинаковых с виду строках.

Как их увидеть

Вставьте текст в поле выше. В колонке-«рентгене» каждый скрытый символ подсвечен плашкой с аббревиатурой (ZWSP, BOM, SHY…) — наведите курсор, и подсказка назовёт его полное Unicode-имя и код. Пример на этой странице уже содержит четыре классических случая: пробел нулевой ширины внутри имени переменной, неразрывные пробелы в числе, мягкие переносы внутри слов и BOM в конце строки.

Откуда они берутся

Из веб-страниц (вёрстка расставляет неразрывные и тонкие пробелы), из мессенджеров и чатов, из Word и Google Docs (автоперенос — это мягкие переносы), из PDF, из выдачи нейросетей, из файлов, сохранённых редактором с BOM. Скопировали — и невидимый багаж поехал с текстом.

Как почистить

Чистая копия собирается автоматически по включённым правилам — по умолчанию невидимые символы удаляются, а экзотические пробелы становятся обычными. Кнопка Copy копирует результат, Download — скачивает. Если чистите русскую прозу, а не код: снимите галочки правил кавычек и тире — «ёлочки» и длинное тире в русском тексте стоят по праву. Отдельные задачи: текст из нейросети, неразрывные пробелы в числах, код, который не запускается.