Ký tự rỗng có ý nghĩa tương tự như lệnh NOP—khi được gửi đến máy in hoặc thiết bị đầu cuối, ký tự này không yêu cầu thiết bị thực hiện thao tác nào. Một số thiết bị có thể hiển thị ký tự space không chính xác. Khi máy viễn ấn điện cơ trở thành thiết bị đầu ra của máy tính, ký tự rỗng được gửi ở cuối mỗi dòng in để máy có thêm thời gian trở về vị trí đầu dòng. Trong dãy băng đục lỗ, ký tự rỗng không có lỗ đục, do đó, dãy băng chưa đục lỗ coi như đã được khởi tạo với ký tự rỗng, và văn bản được thêm vào các vị trí ký tự rỗng bằng cách đục lỗ mới vào.
Biểu diễn
Ký tự rỗng thường được biểu diễn bằng dãy ký tự thoát \0 trong hằng ký tự hoặc chuỗi trong mã nguồn. Trong nhiều ngôn ngữ như C, đây không phải là dãy ký tự thoát riêng biệt mà là dãy ký tự thoát bát phân với số 0; theo đó, không được phép có chữ số 0 đến 7 theo sau \0. Các biểu diễn khác của ký tự rỗng trong các ngôn ngữ khác là \000, \x00, \z, hoặc mã \u0000 trong Unicode. Trong URL, ký tự rỗng có thể được thay thế bằng %00.
Ký tự rỗng thường được biểu diễn dưới dạng dãy ký tự thoát (escape sequence) \0
trong hằng ký tự hoặc hằng chuỗi trong mã nguồn. Trong nhiều ngôn ngữ (như C, sử dụng cách biểu diễn này), đây không phải là một dãy ký tự thoát riêng rẻ, mà là một dãy ký tự thoát bát phân với chữ số bát phân 0; hệ quả là, theo sau \0
không được phép có bất kỳ chữ số 0
tới
7
nào; nếu không, nó sẽ bị trình biên dịch xem như nơi bắt đầu của một dãy ký tự thoát bát phân với độ dài lớn hơn. Các biểu diễn ký tự rỗng trong dãy ký tự thoát ở các ngôn ngữ khác là \000
, \x00
, \z
, hoặc mã \u0000
trong bảng mã Unicode. Ký tự rỗng trong một URL có thể bị thay thế bằng %00
.Việc biểu diễn ký tự rỗng không phải lúc nào cũng đảm bảo chuỗi kết quả được biên dịch chính xác, vì nhiều chương trình coi ký tự rỗng là kết thúc chuỗi. Điều này có thể dẫn đến lỗ hổng tiêm byte rỗng (null byte injection), mở đường cho các cuộc tấn công bảo mật nhằm khai thác hệ thống.
Trong hệ ký hiệu dấu mũ (caret notation), ký tự rỗng được biểu diễn là ^@. Trên một số bàn phím, người dùng có thể nhập ký tự rỗng bằng cách giữ phím Ctrl và nhấn @ (có thể cần giữ phím Shift và nhấn một phím khác như 2 hoặc P).
Trong tài liệu văn bản, ký tự rỗng đôi khi được biểu diễn bằng biểu tượng có chiều dài 1 em với chữ 'NUL'. Trong Unicode, ký tự tương ứng là 'symbol for null', U+2400 (␀), nhưng đây không phải là ký tự rỗng thật sự, mà là U+0000.
Mã hóa
Trong các bảng mã hiện đại, ký tự rỗng có giá trị điểm mã là zero. Trong nhiều hệ mã hóa, nó được mã hóa thành một đơn vị mã có giá trị zero, như trong UTF-8 với một byte zero đơn lẻ. Tuy nhiên, trong Modified UTF-8, ký tự rỗng được mã hóa thành hai byte: 0xC0 và 0x80, cho phép byte giá trị zero không dùng cho ký tự nào khác được dùng làm dấu kết chuỗi.
- Ký tự điều khiển
Liên kết bên ngoài
- Tấn công Null Byte WASC Threat Classification Phần tấn công Null Byte
- Giới thiệu về Null Byte Giới thiệu về cuộc tấn công Null Byte