Boş karakter - Null character

Boş karakter (aynı zamanda boş terminatör ) a, kontrol karakteri değeri sıfır ile. Baudot ve ITA2 kodları, ISO/IEC 646 (veya ASCII ), C0 kontrol kodu , Evrensel Kodlu Karakter Seti (veya Unicode ) ve EBCDIC tarafından tanımlananlar dahil olmak üzere birçok karakter setinde bulunur . Neredeyse tüm ana programlama dillerinde mevcuttur . Genellikle olarak kısaltılmıştır NUL (veya NULL terimi için kullanılan bazı bağlamlarda da boş işaretçisi , farklı nesne). 8 bitlik kodlarda boş bayt olarak bilinir .

Bu karakterin orijinal anlamı NOP gibiydi - bir yazıcıya veya terminale gönderildiğinde hiçbir şey yapmaz (ancak bazı terminaller bunu yanlış bir şekilde boşluk olarak görüntüler ). Elektromekanik tele yazıcılar bilgisayar çıkış cihazları olarak kullanıldığında, mekanizmanın bir sonraki satırda ilk baskı konumuna dönmesine zaman tanımak için yazdırılan her satırın sonunda bir veya daha fazla boş karakter gönderildi. On delikli bant yeni unpunched bant üzerinde bant içine yeni karakterler delme tarafından boş bir karakter ayrılmış alana başlangıçta boş karakterlerle doludur ve genellikle metin "takılı" olabilir bu yüzden, karakter, hiçbir deliklerle temsil edilir boş değerler.

Bugün karakter, C'de ve türevlerinde ve çoğu zaman boş sonlandırılmış bir dize olarak adlandırılan bir dizgenin sonunu belirtmek için kullanılan ayrılmış bir karakter olarak hizmet ettiği birçok veri biçiminde çok daha fazla öneme sahiptir . Bu, dizenin yalnızca bir bayt ek yüküyle herhangi bir uzunlukta olmasını sağlar; bir sayının saklanmasının alternatifi, ya 255'lik bir dizi uzunluk sınırı ya da birden fazla baytlık bir ek yük gerektirir ( boş sonlandırılmış dize makalesinde açıklanan başka avantajlar/dezavantajlar vardır ).

temsil

Null karakteri sık olarak temsil edilir çıkış sırası \0 içinde kaynak kodu , dize hazır veya karakter sabitleri. Birçok dilde ( bu gösterimi tanıtan C gibi ), bu ayrı bir kaçış dizisi değil, tek bir sekizlik basamaklı bir sekizlik kaçış dizisidir ; sonuç olarak, sonuna kadar \0herhangi bir rakam 0gelmemelidir 7; aksi takdirde daha uzun bir sekizli kaçış dizisinin başlangıcı olarak yorumlanır. Çeşitli dillerde kullanımda bulunan diğer kaçış dizileri vardır \000, \x00, \z, veya \u0000. Bir null karakteri bir yerleştirilebilir URL'ye sahip yüzde kodu %00 .

Boş bir karakteri temsil etme yeteneği, çoğu program boş karakteri dizenin sonu olarak kabul edeceğinden, sonuçta ortaya çıkan dizenin her zaman doğru yorumlanacağı anlamına gelmez. Bu nedenle, onu yazabilme ( işaretlenmemiş kullanıcı girişi olması durumunda ) boş bayt enjeksiyonu olarak bilinen bir güvenlik açığı yaratır ve güvenlik açıklarına yol açabilir.

Gelen şapka gösterimde boş karakteridir ^@. Bazı klavyelerde, basılı tutup Ctrlbasarak boş bir karakter girilebilir @(ABD düzenlerinde yalnızca Ctrl+ 2genellikle çalışır, ⇧ Shift@ işaretini almaya gerek yoktur ).

Belgelerde, boş karakter bazen "NUL" harflerini içeren tek em- genişlikli bir sembol olarak temsil edilir . Olarak Unicode'a , boş karakter görsel temsili için karşılık gelen bir glif karakteri, "boş sembolü" U yoktur + 2400 (␀) olmamalı- gerçek boş karakter ile karıştırılmamalıdır + 0000 U.

kodlama

Tüm modern karakter kümelerinde boş karakterin kod noktası değeri sıfırdır. Çoğu kodlamada bu, sıfır değerine sahip tek bir kod birimine çevrilir. Örneğin, UTF-8'de tek bir sıfır bayttır. Ancak, Değiştirilmiş UTF-8'de boş karakter iki bayt olarak kodlanmıştır: 0xC0, 0x80. Bu, artık herhangi bir karakter için kullanılmayan sıfır değerine sahip baytın bir dize sonlandırıcı olarak kullanılmasına izin verir.

sorunlar

Adı Null olan bazı kişiler bilgisayar sistemlerinde sorun yaşamışlardır.

Referanslar

Dış bağlantılar

  • Boş Bayt Enjeksiyonu WASC Tehdit Sınıflandırması Boş Bayt Saldırısı bölümü
  • Poison Null Byte Nullify 9'a Giriş
  • Bayt Saldırısı