🚀 HTML Karakter Setleri: ASCII'den UTF-8'e Web'in Dili
Bilgisayarların metinleri nasıl anladığını ve UTF-8'in neden modern web'in standartı olduğunu öğreniyoruz.
Selamlar, ben Ovid Game'den. Bugün işin biraz 'mutfağına', yani verinin ekranda nasıl anlam kazandığına bakacağız. Çoğu yeni başlayan arkadaş <meta charset="UTF-8"> satırını kopyala-yapıştır yaparak geçer ama işin arka planında ciddi bir tarihsel mücadele var.
Bilgisayarlar Metni Nasıl Görür?
Bilgisayarlar aslında harfleri bilmez, sadece sayıları (0 ve 1) bilir. Bir harfi ekranda göstermek için o harfe karşılık gelen bir sayı kodu gerekir. İşte buna Character Encoding (Karakter Kodlama) diyoruz.
- ASCII (1960'lar): Sadece 7 bitlikti. 128 karakter barındırıyordu. İngiliz alfabesi, rakamlar ve temel semboller vardı. Ama bizim 'ğ, ş, İ' gibi harflerimiz dışarıda kaldı.
- ISO-8859-1 (Latin-1): ASCII'yi 8 bite çıkardılar. Batı Avrupa dilleri için biraz nefes aldırdı ama hala global değildi. Her dil grubu için ayrı bir set gerekiyordu (Türkçe için ISO-8859-9 gibi).
Eskiden, örneğin bizim 'İçimizdeki Savaş' gibi Türkçe karakterlerin yoğun olduğu bir projeyi yanlış kodlamayla sunucuya atsaydık, oyuncular 'Karakter Ölündü' yerine 'Karakter lnd' gibi garip şeyler görürdü. Buna literatürde 'Mojibake' denir.
Neden UTF-8?
UTF-8 (Unicode), dünyadaki hemen hemen tüm dilleri ve hatta emojileri kapsayan devasa bir kütüphanedir. Modern web'de <meta charset="UTF-8"> kullanmamızın ana sebepleri şunlardır:
- Geriye Dönük Uyumluluk: ASCII ile başlayan ilk 128 karakter UTF-8'de de aynıdır.
- Değişken Uzunluk: İngilizce karakterler için 1 byte harcarken, daha karmaşık semboller için 4 byte'a kadar çıkar. Bu da dosya boyutunda optimizasyon sağlar.
- Evrensellik: Bugün bir oyun arayüzü yaparken (bizim OvidRacer'daki skor tablosunda olduğu gibi), oyuncunun isminde Japonca karakterler veya emojiler varsa, UTF-8 sayesinde bunlar 'kırılmadan' her tarayıcıda aynı görünür.
Özetle; bu satırı ekleyerek tarayıcıya şunu diyorsunuz: "Hey, bu dosya içindeki bitleri yorumlarken Unicode standartlarını kullan, kafana göre takılma."
Teknik bir sorunuz olursa buralardayım.
Ovid Game Studio | Teknik Altyapı Notları