Aslında çok ciddi sorunlara yol açan UTF-8 BOM (Byte Order Mark) nedense birçok kişi tarafından bilinmiyor. Fakat o kadar ciddi bir durum ki sitenizin tüm karakterlerinizin bozulmasına veya sitenin tamamen çökmesine (görüntülenmemesine) neden olabiliyor. Aslında bu konuya daha önce En Yaygın Wordpress Hatası başlıklı makalemde değinmiştim ama burada biraz daha geniş ve anlaşılır bir şekilde açıklamak istiyorum.
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: 
Ö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 – headers already sent by …”
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.
Çözüm oldukça basit. Dosyanızı UTF-8′e çevirirken yazı düzenleyicinizde BOM olmadan UTF-8 seçeneÄŸini seçmelisiniz. Malesef bunu yapmak için direk kodları silemiyoruz çünkü yazı düzenleyiciler bu karakterleri görmüyor. Biz dosyanın dil yapısını deÄŸiÅŸtirerek bu iÅŸaretten kurtulacağız. En çok kullanılan iki düzenleyici olan Notepad2 ve Notepad++ yazılımlarında resimle nasıl bu iÅŸaretten kurtulabileceÄŸinizi gösterelim.
Notepad++ (Benim Tercihim)
Notepad++ programında Format altında BOM olmadan UTF-8 (UTF-8 without BOM)’u seçerek sorunu giderebilirsiniz.

Not 1: Mevcut bir dosya ANSI formatında ve Türkçe karakter içeriyorsa onu dönüştürmek için Dönüştür (UTF-8 Without BOM) seçeneÄŸini seçerseniz karakterleriniz bozulmadan BOM’suz UTF-8 formatında kodlamaya geçebilirsiniz.
Not 2: Türkçe karakterli dosyayı dönüştürmenin uzun yolu ise ÅŸu ÅŸekildedir. Önce Ctrl+A ile tüm yazıyı seçip Kes’in. Ardından dosyanın formatını resimlerdeki gibi deÄŸiÅŸtiri. Sonra kestiklerinizi tekrar yapıştırın ve dosyanızı kaydedin.
Notepad2
Notepad2 programında File->Encoding altında sadece UTF-8 olan seçeneği seçerek sorunu çözebilirsiniz.

Not 1:Bu makaleyi denen ÅŸimdi yazdığımı merak ediyorsanız söyleyeyim. XHTML standartları nedeniyle W3′ün HTML Validator sayfasına iÅŸim düşmüştü. Orada şöyle bir mesajla karşılaÅŸtım.
The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported.
Yani diyor ki BOM’lu dosyaların bazı düzenleyicilerde ve tarayıcılarda problem çıkardığı bilinmektedir. Bu nedenle BOM daha iyi desteklenene kadar bu iÅŸareti kullanmaktan kaçınsanız iyi olur.
Not 2: BOM, özellikle tema Türkçe’leÅŸtirmelerinde dikkat edilmesi gereken bir husus.
BOM hakkında söyleyeceklerim bu kadar. Daha dikkatli yazılmış kodlarda görüşmek dileÄŸiyle…
Kuvvet ordudur. Düşmanlar milletimizi bağımsızlıktan mahrum etmek için evvela onu ordudan mahrum etmek çarelerine giriştiler. Kumandanlarımıza ve subaylarımıza tecavuz etmeye başladılar. Ordumuzu tamamen lağvederek milletin bağımsızlığını muhafaza için muhtaç olduğu dayanak noktasından mahrum etmeye teşebbüs ettiler. Herhalde ordu düşmanlarımızın birinci taaruz hedefi oldu. Orduyu imha etmek için de mutlaka subayları mahvetmek ve aşağılamak lazımdır. Bundan sonra milleti koyun sürüsü gibi boğazlamakta engeller ve müşkülat kalmaz.
Mustafa Kemal Atatürk
Rastgele Sözler Eklentisi ile oluşturulmuştur.
yakuter.com © 2006-2009 Erhan Yakut. Site tasarım fallendesign. Hosting sponsoru WebGrup.
Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.
11 yakuter
26 Haziran 2008, 17:42
@vatan, son sürüm notepad++ indir, olması gerekli.
12 Muhittin Özer » Blog ArÅŸivi » PHP ve MySQL’de sık yaÅŸanan Türkçe karakter problemleri
21 Temmuz 2008, 02:22
[...] kodlamasını BOM olmadan seçeneÄŸiyle yazmak. Bu konuda detaylı bilgiyi yakuter’in blogundaki UTF-8 BOM (Byte Order Mark) Nedir? yazısında [...]
13 Fatih
22 Temmuz 2008, 05:57
Arkadaşım sana çok ama çok teşekkür ederim.
Yaptığım tüm işlemlerde veritabanı ayarı gibi herşey UTF 8 olmasına rağmen , kodlarımı yazdığım dosya kodlaması BOMLU UTF8 olduğu için hep hata alıyordum.
Sayende bunu öğrendim,çok ama çok teekkür ederim.
14 yakuter
22 Temmuz 2008, 16:20
Ne demek Fatih, işinize yaradıysa ne mutlu bana ;)
15 Muhittin Özer » PHP ve MySQL’de sık yaÅŸanan Türkçe karakter problemleri
27 Kasım 2008, 18:10
[...] BOM olmadan seçeneÄŸiyle yazmak. Bu konuda detaylı bilgiyi yakuter‘in blogundaki UTF-8 BOM (Byte Order Mark) Nedir? yazısında [...]
16 yakuter » Yakuter.Com Facebook Grubu
03 Ocak 2009, 12:25
[...] verdim. Durum böyle olunca kimi makalenin gerçekten bir ihtiyacı karşıladığını (örn. UTF-8 BOM (Byte Order Mark) Nedir?) kimi makalenin ise nerdeyse sadece benim tarafımda ilginç bulunduğunu gördüm. Daha doğru [...]
17 WordPress’te Türkçe Karakter Hataları · Yakup Gövler'in Not Defteri
22 Ocak 2009, 09:51
[...] bir metin dosyası gibi düzenlenmek istenmesidir. Halbuki WP dosyaları UTF-8 formatında ve BOM olmadan kodlanması gereken dosyalardır. Eğer karakter hatası siz bir dosyayı düzenledikten [...]
18 nihilanth
21 Åžubat 2009, 16:05
Merhaba. hem tema dosyalarını hem eklentileri utf8-bomsuz olarak kodluyorum notepad++ da ve kaydedip upload ediyorum serverıma ancak baktım türkçe karakter sorunu düzelmedi.
sonra tekrar bakayım dedim. notepad++ da açtım dosyayı. bir baktım hala kodlama ANSI olarak gözüküyor. yani değiştir deyip kaydettiğim halde bir sonraki açışta yine ansi.. bu sorunu nasıl çözeriz?
19 yakuter
22 Åžubat 2009, 12:30
Dosyayı gönderirken FTP ayarlarından dosya değişiyor olabilir diyeceğim ama tamda emin değilim buna neyin sebep olabileceği konusunda.
20 fatih taÅŸdelen
01 Mart 2009, 23:36
çok teşekkür ederim kafayı yemiştim şu w3 ile 3 hata kaldı 1 uyarı şimdi yarın şirkete gittiğimde bu uyarıyı notepad++ da düzenleyeceğim diğer marquee olaylarınıda css kullanarak temizleyip şu html geliştiricileri denilen olaya onaylatmak istiyorum şu siteyi :) saygılarımla