UTF-8 Nedir?
UTF-8, Unicode’daki bütün standart karakterleri bir ile dört bayt arasında değişen uzunlukta kodlayan ve web’de en yaygın kullanılan karakter kodlamasıdır; Türkçe harflerin sistemler arasında bozulmadan aktarılmasını sağlar.
Diğer Adları: UCS Transformation Format 8, UTF8
UTF-8 Nasıl Çalışır?
MDN’ye göre UTF-8 (UCS Transformation Format 8), web’de en yaygın kullanılan karakter kodlamasıdır. Her karakter bir ile dört bayt arasında temsil edilir ve standart Unicode karakterlerinin tamamı yazılabilir. İlk 128 karakter ASCII’nin ilk 128 karakteriyle birebir aynıdır; bu yüzden ASCII metin aynı zamanda geçerli UTF-8’dir. Diğer karakterler iki ile dört bayt kullanır.
Türkçedeki ç, ğ, ı, İ, ö, ş ve ü harfleri ASCII’de bulunmadığı için UTF-8’de birden fazla baytla yazılır.
UTF-8 Kodlama Hataları Nasıl Görünür?
Metin bir kodlamayla yazılıp başka bir kodlamayla okunduğunda harfler bozulur: Türkçe harflerin yerinde anlamsız karakter dizileri ya da soru işaretleri görünür. Bu sorun ürün dosyası aktarımlarında, eski sistemlerden alınan dışa aktarımlarda, e-posta şablonlarında ve sistemler arası API bağlantılarında görülebilir.
Örnek: Bir mağaza ERP’den aldığı ürün listesini pazaryerine yükler. Dosya ERP’de eski bir Türkçe kodlamayla kaydedildiği ve pazaryeri UTF-8 beklediği için gömlek ürünlerinin adları bozuk karakterlerle görünür. Dosya UTF-8 olarak yeniden kaydedilip birkaç ürünle denendikten sonra tamamı yüklenir.
UTF-8 Kullanımında Dikkat Edilecekler
- Sayfaların, veritabanının, dışa aktarılan dosyaların ve API yanıtlarının kodlaması aynı tutulur.
- Dosya alışverişinde hangi kodlamanın kullanıldığı iki tarafça açıkça belirtilir; RFC 4180’e göre CSV dosyasında kodlama bilgisi isteğe bağlıdır ve dosyada yazmayabilir.
- Karakter sayısı ile bayt sayısı aynı değildir; alan uzunluğu bayt olarak sınırlanan sistemlerde Türkçe harfli metin beklenenden önce sınıra ulaşabilir.
- SMS’te karakter kodlaması ayrı bir konudur; mesajın kaç parçaya bölüneceğini GSM-7 ve UCS-2 kodlamaları belirler.
UTF-8 Hakkında Sık Sorulan Sorular
UTF-8 ile Unicode aynı şey mi?
Aynı değildir. Unicode karakterlere numara veren karakter kümesidir; UTF-8 ise bu karakterlerin baytlarla nasıl yazılacağını belirleyen bir kodlamadır.
Türkçe harfler UTF-8’de kaç bayt tutar?
ASCII’de bulunmayan Türkçe harfler UTF-8’de iki bayt tutar. ASCII’deki harfler ve rakamlar ise bir bayttır.
Bir dosyanın UTF-8 olup olmadığı nasıl anlaşılır?
Metin düzenleyicilerin çoğu dosyanın kodlamasını gösterir ve farklı kodlamayla kaydetmeye izin verir. En güvenli yol, dosyayı birkaç Türkçe harfli kayıtla hedef sisteme yükleyip sonucu kontrol etmektir.