Ký Tự Rỗng

Ký tự rỗng (null character) hay còn được gọi là dấu kết rỗng (null terminator), NULL, là một ký tự điều khiển có giá trị zero.

Ký tự rỗng hiện diện ở nhiều bảng mã, bao gồm ISO/IEC 646 (hoặc ASCII), mã điều khiển C0, Bảng mã phổ quát (Universal Character Set hoặc Unicode), và EBCDIC. Nó có mặt ở hầu hết các ngôn ngữ lập trình chủ yếu.

Ý nghĩa ban đầu của ký tự này tương tự như NOP—tức khi được gởi tới một máy in hoặc một thiết bị đầu cuối, ký tự rỗng không làm các thiết bị này thực hiện một thao tác nào cả (tuy vậy, vài thiết bị cuối vẫn hiển thị (một cách không chính xác) một ký tự space). Khi máy viễn ấn điện cơ trở thành thiết bị đầu ra máy tính, một hoặc vài ký tự rỗng được gởi ở cuối mỗi dòng in để giúp cho chiếc máy có thêm thời gian trở về vị trí đầu dòng in kế tiếp.[cần dẫn nguồn] Trong dãy băng đục lỗ, ký tự rỗng được thể hiện ở dạng không có lỗ đục nào cả, vì thế, một dãy băng chưa đục lỗ được xem như là đã được khởi tạo với toàn bộ ký tự rỗng, và sau đó, văn bản thường được "chèn" vào những vị trí mà trước đó là ký tự rỗng bằng cách đục ký tự mới vào chỗ thể hiện ký tự rỗng đó.

Ngày nay, ký tự rỗng đóng vai trò khá quan trọng trong ngôn ngữ lập trình C và các biến thể của ngôn ngữ này và ở nhiều định dạng dữ liệu, khi nó đóng vai trò một ký tự được định sẵn, đánh dấu kết thúc chuỗi, thường được gọi là chuỗi kết thúc rỗng (null-terminated string). Điều này cho phép chuỗi có độ dài tùy ý, với việc khai báo dư thêm một byte; đây là một lựa chọn song song với cách lưu chuỗi kèm biến đếm số ký tự (bắt buộc) cho chuỗi có độ dài giới hạn tới 255 byte hoặc có độ dài ít một byte so với khai báo (Xem thêm ưu điểm và hạn chế ở bài chuỗi kết thúc rỗng).

Biểu diễn Ký Tự Rỗng

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.

Khả năng biểu diễn ký tự rỗng không phải lúc nào cũng khiến chuỗi kết quả được biên dịch đúng, bởi nhiều chương trình sẽ hiểu ký tự rỗng là kết thúc một chuỗi. Vì thế khả năng đánh máy (trong trường hợp giá trị nhập vào của người dùng chưa được kiểm tra) tạo ra lỗ hổng tiêm byte rỗng (null byte injection) và có thể dẫn đến việc khai thác vấn đề bảo mật hệ thống để thực hiện thành vi phá hoại.

Trong hệ ký hiệu dấu mũ (caret notation) ký tự rỗng được biểu diễn dưới dạng ^@. Ở một vài bàn phím, người dùng có thể nhập ký tự rỗng bằng cách giữ Ctrl và nhấn @ (thường cũng được yêu cầu phải giữ phím ⇧ Shift và nhấn 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 dưới dạng một biểu tượng có chiều dài 1 em chứa chữ "NUL". Trong Unicode, có một ký tự với glyph tương ứng dành cho việc hiển thị ký tự rỗng, "symbol for null", U+2400 (␀)—nhưng đây không phải là ký tự rỗng thật sự, U+0000.

Mã hóa Ký Tự Rỗng

Trong tất cả các bảng mã hiện đại, ký tự rỗng có giá trị điểm mã là zero. Trong hầu hết cách thức mã hóa, nó được dịch thành một đơn vị mã có giá trị zero. Ví dụ như trong UTF-8 nó là 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, 0x80. Điều này cho phép byte có giá trị zero, không còn được dùng cho bất kỳ ký tự nào nữa, được sử dụng như một dấu kết chuỗi.

Xem thêm

Tham khảo

Liên kết ngoài

Tags:

Biểu diễn Ký Tự RỗngMã hóa Ký Tự RỗngKý Tự RỗngASCIIKý tự điều khiểnNgôn ngữ lập trìnhUnicode

🔥 Trending searches on Wiki Tiếng Việt:

Nguyễn Minh TúDanh sách nhà vô địch bóng đá AnhĐại học Quốc gia Thành phố Hồ Chí MinhTăng Minh PhụngNguyễn Nhật ÁnhĐịnh luật OhmBiển ĐôngHọ người Việt NamSongkranHán Cao TổNgườiChủ nghĩa tư bảnSeventeen (nhóm nhạc)Tập đoàn VingroupMalaysiaLuis Enrique (cầu thủ bóng đá)Danh sách trường trung học phổ thông tại Hà NộiPhilippinesPep GuardiolaHarry KaneSơn Tùng M-TPMông CổNhà TốngUEFA Champions League 2023–24Hybe CorporationApple (công ty)Phạm Băng BăngĐạo Cao ĐàiChuột lang nướcNguyễn Đình ThiThế hệ ZTrường ChinhNhật ký Đặng Thùy TrâmDầu mỏTừ Hán-ViệtLiên minh châu ÂuDanh sách đảo Việt NamHà TĩnhBố già (phim 2021)Quân chủng Phòng không – Không quân, Quân đội nhân dân Việt NamLão HạcCộng hòa Nam PhiLạm phátVnExpressVăn Miếu – Quốc Tử GiámSaigon PhantomHoa KỳHồng Vân (diễn viên)Tập đoàn FPTNguyễn Thị Ánh ViênTôn Đức ThắngNhật Bản69 (tư thế tình dục)Nicolas JacksonTranh Đông HồXXXĐèo CảSinh sản vô tínhQuy NhơnNguyễn Vân ChiVụ phát tán video Vàng AnhKylian MbappéDân số thế giớiThạch LamChâu MỹChế Lan ViênVirusViệt NamCho tôi xin một vé đi tuổi thơCần ThơMặt trận Dân tộc Giải phóng miền Nam Việt NamTam quốc diễn nghĩaĐảng Cộng sản Việt NamGiải bóng đá vô địch quốc gia ĐứcTrường Đại học Kinh tế Quốc dânXHamsterBabyMonsterCleopatra VIIHoàng thành Thăng Long🡆 More