Нулевой символ

U+0000

Значение символа

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

Это самый первый символ Юникода и 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
Скопировано!