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

Управляющие символы

C0 CONTROL CHARACTERS (U+0000–U+001F)

32 управляющих кода ASCII — NUL, BEL, ESC, разделители файлов и записей и все остальные. Это команды телетайпу, а не текст.

Диапазон
U+0000–U+001F
Удаляется по умолчанию
Нет
Управляющий параметр
Управляющие символы --controls
Может нести нагрузку
Нет

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

Двоичные данные, вставленные как текст, вывод терминала с сохранившимися escape-последовательностями, журналы, неправильно декодированные файлы и полезные нагрузки, рассчитанные на программы, которые плохо с ними обращаются.

Почему это важно

NUL обрезает строку в C; ESC способен начать терминальную escape-последовательность и изменить то, что вы видите; разделители рвут записи в неожиданных местах. Большинство из них не рисует ничего или рисует прямоугольник-заглушку, так что рецензент видит пропуск.

До и после

ДовсёU+0007готово
Послевсёготово

U+0007 BELL — символ, который когда-то звонил в настоящий звонок, а теперь просто невидим.

Символ показан подписанной плашкой, чтобы было видно, где он стоит. В вашем тексте он не рисует ровно ничего.

Когда он уместен

Табуляция, перевод строки и возврат каретки — именно поэтому Ghostchars исключает эти три из группы и не удаляет их никогда.

Как его удалить

Включите параметр «Управляющие символы» (`--controls`). Табуляция, LF и CR не трогаются вовсе; CR отдельно обрабатывает проход по концам строк.

Это водяной знак ИИ?

Не водяной знак

Нет. Управляющие символы в тексте означают проблему с декодированием или намеренную проверку на прочность. Ни одна модель не выдаёт их как прозу.

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

Вопросы

Удаляет ли он табуляцию?

Нет. Табуляция (U+0009), перевод строки (U+000A) и возврат каретки (U+000D) исключены из этой группы. Концами строк занимается параметр `-n`.

Почему терминал сходит с ума, когда я вывожу файл через cat?

Символ ESC начинает escape-последовательность, а терминал её послушно выполняет. Это одна из причин чистить недоверенный текст перед выводом.

Проверьте свой текст

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

Проверьте свой текстВсе символы