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

Разделители строк

LINE SEPARATOR (U+2028)

Собственный юникодный символ «здесь новая строка», отличный от перевода строки ASCII. Он заканчивает строку, но не абзац.

Кодовая позиция
U+2028
Удаляется по умолчанию
Нет
Управляющий параметр
Концы строк -n
Может нести нагрузку
Нет

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

Shift+Enter в большинстве текстовых процессоров и программ вёрстки, а также всё, что из них выгружают. Текстовые редакторы macOS и InDesign производят их особенно щедро.

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

Это разрыв строки, который большинство построчных программ не распознаёт. Файлы делятся на неправильное число строк, строки CSV склеиваются, а сырой U+2028 внутри строкового литерала JavaScript когда-то был синтаксической ошибкой — и это ломало JSON, встроенный в HTML.

До и после

ДоперваяU+2028вторая
Послепервая вторая

Разрыв строки, который ваш текстовый редактор может и не посчитать разрывом.

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

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

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

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

Включите параметр «Концы строк» (`-n`) — и символ свернётся в обычный LF вместе с CRLF, CR, NEL и U+2029.

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

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

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

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

Вопросы

Почему он ломал мой JavaScript?

До ES2019 U+2028 и U+2029 нельзя было писать в строковых литералах без экранирования, поэтому JSON, вставленный прямо в тег script, мог не разобраться. Современные движки их допускают, старые и многие инструменты — по-прежнему нет.

Почему он не сворачивается по умолчанию?

Потому что смена концов строк меняет файл. Это решение должны принимать вы, а не чистильщик за вас.

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

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

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