UTF-8 BOM (Byte Order Mark) Nedir? Ne işe yarar?

Kategori Kodlama
0 Yorum
03.08.2011
1.728 views

Php öğrenmeye ilk başladığım zamanlarda hatta belkide çok daha öncesine dayanan bir problem vardı.Kurduğumuz hazır bir cms sisteminde yada yazdığımız scripti hostinge attığımızda sayfanın en başında  işareti ile karşılaşıyorduk.Problemi çözmek ise büyük ir sıkıntıydı tabi.UTF-8 BOM konusu sitenizde ciddi problemlere yol açabiliyor bazen sadece ufak bir hata bazen se sitenizdeki bütün karakterlerin bozulmasına sebeb olabiliyor.

BOM UTF-8 ile birlikte ortaya çıkmış olup dosyanın UTF-8 olduğunu gösteren bir işarettir. Bir dosyanın yapısını yazı düzenleyicinizde UTF-8′e çevirirseniz bu işaret kendiliğinden dosyanın en başına eklenir. Peki nasıl bir şeydir bu BOM işareti derseniz şudur: 

BOM’un sebeb olduğu sorunlar nelerdir?

Öncelikle başlık (header) meselesi sorunudur. Tarayıcıda ilk görüntülenmesi gerekenler başlıklardır. Fakat bu kod sayfanın en başına eklendikleri için başlıklardan önce görüntülenirler ki bu durumda bir hata mesajıyla karşılarsınız.
Warning: Cannot modify header information  …

Diğer bir sorun internet explorer’da kodu görmeseniz bile bir satırlık bir alan işgal eder ve siteniz üstten bir satır aşağıya iner. Dilediğiniz kadar css ile sıfırlamaya çalışsanızda yukarıdaki boşluğu bunu başaramazsınız çünkü orada BOM vardır.

Sayfanızda Türkçe karakterlerin tamamen bozuk görünmesine neden olabilir.

Peki nedir bunun çözümü?

Çözümü gayet basit.Dosyalarımızı nasıl utf-8 formatında kaydediyorsak kaydederken UTF-8 without BOM seçeneği ile kaydetmemiz bütün sorunumuzun üstesinden gelmeye yetecektir.Kullandığınız IDE’ye göre farklı alanlardan farklı şekilde çözülebilir.Dreamweaver için anlatacak olursak sayfa özelliklerinden Title Encoding sekmesine tıkladığımızda sayfa dili kodlaması alanı karşımıza çıkar orada UTF-8 i seçtiğimizde altta witouth BOM seçeneğini çok rahatlıkla görebiliriz.Onu işaretler ve kaydedersek sorunumuz çözülmüştür.