UTF-8, Unicode Transformation Format teriminin kısaltılmış halidir. Unicode değişiklik formu olarak malum UTF-8 Rob Bike’nin öncülüğünde geliştirildi. Aynı şahıs bilinmiş olduğu suretiyle Go dilinin de geliştiricisi olarak biliniyor. Bu geliştirme sürecinde kendisine Rob Pike de birlikte rol aldı. UTF-8 söz mevzusu karakterleri 1-6 bayt aralığında kodlamaktadır.
UTF-8 terimine son zamanlarda oldukca sık rastlanılsa da pek oldukca şahıs bu mevzuda teknik bilgiye hakim değil. Her şeyden ilkin karakter kodlamalarıyla karakter setleri içinde farklıklar bulunduğunu altını çizmeliyiz. Genel anlamda ortak noktalarından dolayı bu ikisi içinde pek fark yapılmamaktadır. Oysa Unicode bir karakter seti olarak tanımlanabilir. UTF-8’İ ise bu aşamada karakter kodlaması olarak görebiliriz. ASCII’nin aksine UTF-8’de tüm dünya alfabelerini kapsayan onbinlerce karakter söz mevzusudur. İçinde Türkçe karakterleri de barındıran son aşama kapsamlı setler oluşturulmuştur.
Ortak kullanılan karakter setleri üstünden konuşmak, webin ve iletişimin yaygınlaştığı günümüzde büyük ehemmiyet taşır. 32 bit Unicode karakterleri artık belli ölçülerde yetersiz kalmaktadır. UTF-8 geliştiricileri tam da bu noktadan hareket etmiştir. Bugün ASCII karakterlerinden oluşan metnin UTF-8 açısından karşılığına baktığımızda net bir denklikle karşılaşmak mümkündür. Tek bir baytla ifade edilmeyen Unicode temelli karakterler ise minimum 2 ve daha çok baytla anlatılır. Bu tip karakterler, şu demek oluyor ki minimum 2 ve daha çok bayt içeren karakterleri kolayca anlayabiliriz. Bu tip karakterlerde ilk baytın peşinden gelen baytlar direkt 10 rakamı ile adım atmak durumundadır.
UTF-8 ifadesinde yer edinen sayı, esasen 8 biti ifade ediyor. Bir Unicode dönüşüm biçimi olarak ele alınması ihtiyaç duyulan UTF-8’e belli karakterleri çeşitli bayt grupları ile kodlama süreçlerinde başvurulur. ASCII içinde yer edinen ilk 127 karakter direkt kendi kodlarıyla birlikte kullanılmaktadır. Dışarıda kalan karakterler ise byte dizileri biçimine sokulur. Bir çok süre UTF-8’in işleyiş şekli ve emek verme seçimi ilgi uyandırmıştır. UTF-8’de düzlemler çeşitli bloklara ayrılmış durumdadır. İlgili her blok kendi bünyesinde çeşitli karakter grupları barındırır. Kodlarda yer edinen nokta sayısı blokların büyüklüğünü ifade eder. Bu daima durağan(durgun) bir kıymet değildir. Bir çok süre 16’nın katları biçiminde kurgulanmış olan bir yapıyla karşılaşmak mümkündür.
Herhangi bir metin içinde yer edinen karakterler birbirinden değişik bloklara ilişik olabilir. Bu tip metinlerde bir dağılım söz mevzusu olabilir. Kimi hususi oluşturulmuş klavyeler yardımıyla en garip ve zor sayısal ifadeleri yazmak yada görüntülemek de ihtimaller içindedir. Birbirinden değişik olan tüm karakterler UTF-8 yardımıyla tek bir sayfa içinde kolaylıkla görünmektedir. Geleneksel kodlamalarda mesela Türkçe karakteri göstermek adına son aşama karmaşık olan simge ve rakamlardan yararlanılıyordu. Bunu en sık Ş harfi özelinde görebiliyorduk.
UTF-8 BOM ise kurulum esnasında ciddi zararlar yaratabiliyor. Web sitenizde karakter görüntüleme mevzusunda engel olamadığınız pek oldukca hatayla karşı karşıya kalabilirsiniz. Karakterlerinizin bozuk bir hal almasına niçin olabilecek UTF-8 BOM mevzusunda oldukça dikkatli olmalısınız. Herhangi bir metni mesela UTF-8’e çevirmeye kalktığınızda BOM adında olan işaret metnin en başına eklenmiş olur. Yazının UTF-8 ile görüntülendiğine dair, sinir bozucu bir işaret olarak görülür. Yazının en üst kısmına yerleştiği için ne yazık ki başlıkların önüne geçmektedir. Explorer üstünde de en üst bölümde bir satırlık hacmi doldurur. Bu işgal edilen alan kullanıcılar adına oldukça rahatsız edici olabilir. BOM işaretinden elbet oldukca rahat bir halde kurtulabilirsiniz. Metinlerinizi UTF-8’e dönüştürürken düzenleyicide BOM bulunmadan UTF-8 alanını tercih etmelisiniz. Direkt kod silmek doğru bir yönelim olmayacaktır. Dosyanın mevcud dil yapısını değişiklik yapmak çözüm noktasında kafi olacaktır.
UTF-8 Özellikleri
UTF-8’de tüm karakterlerin ayrı ayrı Unicode tarafınca saptanan kod noktaları bulunuyor. Tüm bu kod noktaları 0 ve 1.114.111 aralığında yer ediniyor. Kod noktaları iki tabanına dönüştürülmektedir. Bu süreçte bizzat taban dönüşümü tercih edilen ilk yöntem değildir. Bunun yerine daha değişik yöntemlerden faydalanılıyor. İşte tüm bu örneksiz şekilleri karakter kodlama şekli olarak isimlendirmemiz mümkün.
UTF-8 kodlama stilinde, değişik kod birimlerinden meydana gelecek şekilde iki tabanına dönüştürülür. Her bir kod birimi 8 bit olarak ayarlanmıştır. Bundan dolayı UTF-8 vesilesiyle kodlanan bir yazı bütününde ayrı ayrı tüm karakterlerin uzunlukları 8’in katları olacak şekilde sıralanır. UTF-8’in bazı mühim emek verme prensipleri söz mevzusudur. Mesela tüm karakterlerin ilk kod biriminin başlangıcında, söz mevzusu karakteri kodlamakta olan total kod birim rakamı kadar hane kullanılır. UTF-8’in ilk geliştirme sürecindeki genel kapsamı, 31 bit sınırına kadar olan tüm sayıları içeriyordu.
2013 yılına kadar bir tek 31 bite kadar olan sayıları UTF-8 sistemiyle kodlamak mümkündü; sadece meydana getirilen güncellemeler bu konudaki üst sınırın boyutlarını bir fazlaca yukarılara çekti. UTF-8’in en kıymetli özelliği geriye doğru uyumluluk mevzusundaki ayrıcalığıdır. Öte taraftan oldukca ya da tek baytlı karakterler içinde kolayca fark yapılmasını sağlıyor. Değişken kod uzunluğu, kendini eş zamanlama, UTF-8’e dair belirtebileceğimiz öteki özellikler içinde diyebiliriz.