Kod noktası

Karakter kodlaması terminolojisinde, kod noktası veya kod konumu kod uzayını oluşturan sayısal değerlerin her birine verilen isimdir. Kod noktalarının karşılık geldiği karakterler genelde çizgisel karakterler olsa da zaman zaman biçimlendirme karakterleri de olabilmektedir (satır sonu karakteri gibi).

Örneğin ASCII karakter kodlama düzeni 016'dan 7F16'ya kadar olan 128 sayıyı içerir. Genişletilmiş ASCII ise 016'dan FF16'ya kadar olan 256 sayıyı içerir. Unicode ise 016 ile 10FFFF16 aralığındaki 1.114.112 kod noktasını içermektedir. Unicode kod uzayı on yedi adet düzleme (temel çokdilli düzlem ve 16 tamamlayıcı düzlem) bölünmüştür. Bu düzlemlerin her biri 65.536 (= 216) kod noktası bulundurur. Dolayısıyla Unicode kod uzayının toplam uzunluğu 17 × 65.536 = 1.114.112'dir.

Sabit uzunlukta bit dizileri kullanan (8-bit uzunluğundaki baytlar gibi) bilgisayar sistemlerinin kod noktalarını depolayabilmesi ve taşıyabilmesi için kod noktalarının belirli bir yöntemle ikil sayılara dönüştürülmesi.

Birinci aşamanın öngördüğü kod noktası tahsis sürecini Unicode Consortium yürütmektedir. Karakterler ve kendilerine atanan kod noktaları Unicode tarafından Code Chart adı verilen belgeler halinde tablolar halinde yayınlanmaktadır. Yeni karakter eklemeleri yapıldıkça bu tablolar güncellenmektedir.

İkinci aşamada öngörülen süreç ise karakter kodlama biçimlerince gerçekleştirilmektedir. Bu aşamada farklı yöntemlerin olması ve her birinin kendine göre avantaj ve dezavantajlarının bulunması, metinsel verinin kullanıldığı sistemin teknik özelliklerine göre yapılacak değerlendirme sonucunda uygun kodlama seçilip kullanılabilmesini sağlamaktadır. Ancak günümüzde en yaygın olarak kullanılan karakter kodlaması UTF-8'dir.

Unicode'da kodlama esnasında ortaya çıkan belirli uzunluktaki bit dizilerine kod birimi denir. UCS-4 kodlamasında her kod noktası 4 baytlık ikil sayılarla kodlanırken UTF-8 kodlamasında kod noktaları birden dörde kadar değişen uzunlukta bayt dizileriyle kodlanmaktadır. Kod noktaları soyut karakterlere atanan sayılardır. Soyut karakterler grafiksel bir görüntü belirtmeyip yalnızca metinsel verinin bir birimi olarak düşünülmüştür. Yani grafiksel olarak farklı şekillerde gösterimi mümkün olan karakterler aynı soyut karakterle temsil ediliyor olabilirler ve bu durumda hepsinin kod noktası aynı olur. Kod noktalarının çoğu ileride yeni karakterlere tahsis edilmek için ayrılmıştır. Bununla beraber bazı kod noktaları doğrudan karakterlere tahsis edilmeyip başka amaçlara hizmet etmektedirler (UTF-16 kodlamasında kullanılan yedek çiftler gibi).

Kod noktalarıyla temsil ettikleri soyut karakter arasındaki ayrım Unicode'da pek dile getirilmemiştir; ancak başka karakter kodlama düzenlerinde kolayca fark edilir durumdadır. Kod sayfası olarak adlandırılan çoğu karakter kodlama düzeni aynı kod uzayını kullanmalarına rağmen bu kod uzayındaki kod noktalarını farklı karakterlere tahsis etmişlerdir. Örneğin genişletilmiş ASCII setlerinin hepsi 256 sayılık aynı kod uzayını kullanmasına rağmen bazı kod noktalarını farklı karakterlere atamış olmalarıyla değişiklik gösterirler.

Unicode'un bu diğer kodlama düzenlerinden farkı ise tüm karakterleri tek kod uzayında birleştirerek aynı kod uzayının farklı karakterler için kullanılması zorunluluğuna çözüm olmasıdır.