Нулевой символ
Значение символа
Нулевой символ, также известный как Пустой символ, был разработан для использования в компьютерных терминалах, принтерах, системах обработки текста и телекоммуникационном оборудовании, обозначая пустую или недействительную позицию в потоке данных.
Это самый первый символ Юникода и ASCII, занимающий нулевую позицию. Символ Null имеет ряд применений, таких как обозначение конца строк или блоков данных, заполнение пространства между элементами данных, предотвращение обработки данных после определенной точки и многое другое. В контексте программирования и обработки текстовых данных, нулевой символ может использоваться как маркер конца строки или массива символов, особенно в языках программирования, таких как C и C++. Это так называемые C-строки (читается «Си-строки», название происходит от языка Си, где используются такие строки), другие названия: Null-терминированная строка или ASCIZ-строка. При таком подходе, код, работающий со строкой, изначально не знает её длины и обрабатывает символы последовательно, пока не встретит нулевой.
/* Вывод строки */
i = 0; // начать с начала строки
while (s[i] != 0) { // работать, пока текущий символ не \0
echo s[i]; // вывести очередной символ
i++; // перейти к следующему
}
Из минусов такого подхода:
- Заранее неизвестна длина строки;
- Строка не может содержать непосредственно символ \0;
- Если забыть поставить в конце \0 или случайно удалить его, код пойдёт работать дальше с непредвиденными последствиями.
В случае использования многобайтовых кодировок фиксированной ширины, нулевой символ также должен занимать положенное количество байт. Например, в UCS-2 — два нулевых байта. Альтернативный подход при организации строк — хранить длину строки в отдельной переменной.
Однако, полное игнорирование данного символа иногда может приводить к неприятным последствиями.
Например, некоторые старые браузеры расценивали строку типа <\0script>
как <script>
, что позволяло злоумышленникам внедрять XSS на чужие сайты (авторы которых при обработке данных не предусмотрели такой нюанс).
Для вставки данного символа во многих языках программирования имеется Escape-последовательность \0
.
Как и остальные управляющие символы, этот символ не имеет визуального представления и не занимает места на экране или в печати. В разделе Пиктограммы управляющих символов2400–243F есть отдельный символ, представляющий графическое изображение нулевого символа в виде сокращения NUL — ␀ .
Escape-последовательность: \0
.
Символ является одним из восьми управляющих символов, обязательного наличия которых требует стандарт POSIX:
Символ «Нулевой символ» входит в подраздел «Управляющие символы C0» раздела «Основная латиница» и был утвержден как часть Юникода версии 1.1 в 1993 г.
Этот текст также доступен на следующих языках: English;
Синонимы
пустой символ.
Название в Юникоде | Null |
Номер в Юникоде | |
HTML-код | |
CSS-код | |
Плоскости | 0: Основная многоязычная плоскость |
Блок Юникода | Основная латиница |
Подраздел Юникода | Управляющие символы C0 |
Версия Юникода | 1.1 (1993) |
Сочетание клавиш | ^@ |
Escape-последовательность | \0 |
Тип парной зеркальной скобки (bidi) | Нет |
Композиционное исключение | Нет |
Изменение регистра | 0000 |
Простое изменение регистра | 0000 |
scripts | Common |
Кодировка | hex | dec (bytes) | dec | binary |
---|---|---|---|---|
UTF-8 | 00 | 0 | 0 | 00000000 |
UTF-16BE | 00 00 | 0 0 | 0 | 00000000 00000000 |
UTF-16LE | 00 00 | 0 0 | 0 | 00000000 00000000 |
UTF-32BE | 00 00 00 00 | 0 0 0 0 | 0 | 00000000 00000000 00000000 00000000 |
UTF-32LE | 00 00 00 00 | 0 0 0 0 | 0 | 00000000 00000000 00000000 00000000 |