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