Перейти к содержимому
Ghostchars

О Ghostchars

Небольшой бесплатный инструмент, который находит скрытые символы, отказывается гадать, кто написал ваш текст, и показывает свою работу.

Что это

Ghostchars показывает и удаляет скрытые символы Unicode в тексте и в документах. Он начинался как один файл на Python без зависимостей, написанный ради конкретного вопроса: что именно есть в этой строке из того, чего я не вижу. Таким он и остался. Сайт берёт тот же движок, собирает его для браузера и добавляет страницу вокруг.

Ни аккаунта, ни отправки на сервер, ни очереди, ни ключа API. Вы вставляете текст, видите, что в нём, и сами решаете, что удалить.

Зачем он нужен

Поищите способ найти невидимые символы, и вы попадёте на инструменты, которые обещают распознать водяные знаки ИИ и выдают проценты уверенности. Эти проценты ничего не измеряют: ни один символ в тексте не скажет вам, кто его написал, а инструменты, утверждающие обратное, обычно показывают заранее заданное число.

Честная версия продукта оказывается уже и полезнее. Скрытые символы существуют, они создают настоящие проблемы (сломанный поиск, несовпадающие сравнения, невидимые инструкции для языковых моделей), и их можно найти точно, вообще без догадок. Этим он и занимается. Где символ неоднозначен, страница так и говорит; где утверждение нельзя подтвердить, оно не сделано.

Как Ghostchars решает, что удалять

Правила, по которым он сделан

Ничего не уходит на сервер

Сайт собран из статических файлов, а движок работает на вашем устройстве. Обработки на стороне сервера нет, поэтому нечего логировать, хранить и нечему утекать.

Никаких утверждений, которые нельзя показать

Никакого распознавания ИИ, никаких вероятностей, никакого «удаляем водяные знаки ИИ». Страница о том, чего инструмент не умеет, выходит вместе со страницей о том, что он умеет.

Каждое решение видно

У каждой находки есть строка, столбец, кодовая позиция, имя Unicode, категория и то, что с ней произошло: удалён, заменён, оставлен, потому что несёт нагрузку, или найден, но не тронут. Молча не меняется ничего.

Браузер и CLI согласны друг с другом

Эталонные фикстуры, сгенерированные реализацией на Python, привязывают к ней браузерный движок. Если они разойдутся хоть на одной фикстуре, сборка упадёт.

Открытый код

Движок, тесты и этот сайт открыты под лицензией MIT. Инструмент командной строки помещается в один файл, которому не нужно ничего, кроме стандартной библиотеки Python, и у него есть режим `--check`, завершающийся с ненулевым кодом, если в файле что-то спрятано; это делает его пригодным для pre-commit-хука или шага CI.

./strip_invisible.py --show draft.md
./strip_invisible.py --check *.md

Посмотреть исходники

Приватность

Ничто из вставленного или открытого здесь никуда не передаётся, потому что передавать некуда. Аналитика необязательна, включается только с вашего согласия, размещена в ЕС и проксируется через этот домен, и ни одно событие не несёт содержимого текста, только счётчики и то, какие параметры были включены. Если вы откажетесь, не загрузится вообще ничего.

Читать политику приватности

Кто это поддерживает

Kris Vinters

создаёт и поддерживает Ghostchars

Исправления и вопросы отправляйте на privacy@ghostchars.com.

Связь и исправления

Если страница здесь неправа насчёт кодовой позиции, письменности или техники, это стоит исправить: исправления, сообщения об ошибках и дополнения к указателю символов принимаются на privacy@ghostchars.com и исправляются.

Анонимная статистика?

Ghostchars обрабатывает ваш текст в браузере и никуда его не отправляет. Мы хотели бы считать просмотры страниц через собственный сервер аналитики, почти без cookie: содержимое не собирается никогда.