Список невидимых символов UnVis32: диапазон 01h–1Fh и его пределы
Что содержит диапазон 01h–1Fh в UTF-32, почему он не охватывает все управляющие символы и как выбирать политику фильтрации без потери значимых управляющих знаков.

Назначение
Задача состоит в том, чтобы отличать управляющие кодовые точки от видимых символов при обработке текста в кодировке UTF-32. Сохранённый диапазон UnVis32 покрывает кодовые точки 01h–1Fh, то есть значения от 1 до 31 включительно. Это 31 кодовая точка, и ни одна из них не является NUL (U+0000), который лежит вне этого интервала. Диапазон полезен как быстрый ориентир, но он не заменяет полный классификатор невидимых символов Unicode.
Представление данных
В UTF-32 каждый скалярный код Unicode занимает ровно один 32-битный код. Поэтому один видимый символ может состоять из нескольких скалярных значений: например, эмодзи с модификатором цвета кожи или буква с диакритическим знаком. Четыре байта на видимый символ не является общим правилом. Порядок байтов little-endian описывает расположение разрядов фиксированной числовой величины, а не порядок чтения десятичных цифр.
Состав диапазона 01h–1Fh
Внутри интервала находятся, среди прочего, TAB (U+0009), LF (U+000A), VT (U+000B), FF (U+000C), CR (U+000D) и ESC (U+001B). NUL (U+0000) и DEL (U+007F) являются управляющими символами, но лежат за пределами 01h–1Fh. Перечисление внутри диапазона не является исчерпывающим списком всех невидимых символов Unicode: существуют другие управляющие знаки, форматные коды и символы с нулевой шириной.
Интерпретация и рендеринг
То, как управляющий символ отображается или влияет на вывод, зависит от конкретного рендерера или протокола. ESC не является завершённой последовательностью сам по себе; он может вводить последовательность, но сам по себе не определяет её содержимое. Поэтому классификация «видимый» или «невидимый» не всегда однозначна без указания контекста обработки.
Политика фильтрации
Для публичного или чистого текстового вывода удаление управляющих символов должно следовать явному грамматическому правилу задачи и проверкам на изменение токенов, границ строк, формообразования и протокольных конструкций. Одного факта невидимости недостаточно, чтобы считать кодовую точку удаляемой. Удаление всех управляющих символов может уничтожить значимые табуляции и переносы строк, которые являются частью структуры документа.
Сравнение счётчиков
Количество кодовых точек, скалярных значений, графем и сырых байтов может совпадать или различаться в зависимости от текста. В корректном UTF-32 на каждый скаляр приходится ровно один код, поэтому эти два счётчика всегда равны. Графемный счётчик может совпадать с числом скаляров или отличаться, если символы объединяются в единые графемы. Утверждать, что в каждом абзаце все счётчики различны, неверно.