Скопировано!

Пустой символ

U+0000

Копировать и вставить этот символ

Техническая информация

Название в Юникоде Null
Номер в Юникоде
U+0000
HTML-код
�
РазделУправляющие символы
Версия Юникода:1.1.5

Начертание этого символа в разных шрифтах

Ваш браузер
Arial
Times New Roman

Описание символа

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

Это так называемые «Си-строки» (название происходит от языка Си, где используются такие строки). Другие названия: null-терминированная строка или ASCIZ-строка.

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

/* Вывод строки */
i = 0; // начать с начала строки
while (s[i] != 0) { // работать, пока текущий символ не \0
    echo s[i]; // вывести очередной символ
    i++; // перейти к следующему
}

Из минусов такого подхода:

  • Заранее неизвестна длина строки
  • Строка не может содержать непосредственно символ \0
  • Если забыть поставить в конце \0 или случайно удалить его, код пойдёт работать дальше с непредвиденными последствиями.

В случае использования многобайтовых кодировок фиксированной ширины, нулевой символ также должен занимать положенное количество байт. Например, в UCS-2: два нулевых байта.

Альтернативный подход при организации строк — хранить длину строки в отдельной переменной.

При выводе Unicode-строки нулевой символ не имеет никакого представления и никого влияния на поток вывода. Некоторые программы и устройства могут отображать его в виде пробела, но это не совсем корректно.

Однако, полное игнорирование данного символа иногда может приводить к неприятным последствиями. Например, некоторые старые браузеры расценивали строку типа <\0script> как <script>, что позволяло злоумышленникам внедрять XSS на чужие сайты (авторы которых при обработке данных не предусмотрели такой нюанс).

Для вставки данного символа во многих языках программирования имеется escape-последовательность \0.

Это один из восьми управляющих символов, чьё наличие требует стандарт POSIX.

Кодировка

Кодировка 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