1190 takipçi
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…
Genç yaşlarda programlama ile tanıştı ve Delphi ile başladığı programlama macerasına şuanda PHP, SQL, Javascript, AJAX, CSS, XHTML teknolojileri ile devam etmektedir. Elektrik - Elektronik bölümü mezunu olan "yakuter" 2006 yılından itibaren yakuter.com'un yazarlığını yapmaya başlamıştır.
Minyx 2.0 Lite Türkçe WordPress Teması | BekirJem WebLog
05 Eylül 2007
[...] için Minyx 2.0 Lite‘ı uygun gördüm. İlk denememde Yakuter’in BOM uyarısına dikkat etmediğim için türkçeleştirdiğim tema IE’de kötü [...]
Bu karakterler niye
10 Eylül 2007
[...] BOM UTF-8 BOM (Byte Order Mark) Nedir? __________________ phpBB3 seo – phpBB T
x-treme
11 Eylül 2007
Bir sistemde ajax ile veri çekiyordum;
her defasında “Cannot modify header information – headers already sent by..” hatası alıyordum; ne yaptıysam sonuç değişmedi; ajax ile veri aldığım için karakter kodunu UTF-8 yapmak zorundaydım, dosyayı Notepad programı ile farklı kaydetten UTF-8 yaptığım için dosya bozuluyormuş meğer. Tam yarım günümü yedi bu melet. Ellerine sağlık dostum, sorun bu aptal Notepad’den kaynaklanıyormuş; eburhan’ın anlattığı gibi artık Notepad2 kullanıyorum, mutluyum :)
Berker PEKSAĞ
13 Şubat 2008
İlginç bir çözüm şekli olsa da paylaşmak istedim:
İlk satıra “deneme” gibi bir metin yazdıktan sonra dosyayı kaydedip metni silerseniz BOM illetinden kurtulmuş oluyorsunuz.
Minyx 2.0 Lite Türkçe WordPress Teması | Bekir Cem WebLog
14 Mart 2008
[...] Türkçeleştirmek için Minyx 2.0 Lite‘ı uygun gördüm. İlk denememde Yakuter’in BOM uyarısına dikkat etmediğim için türkçeleştirdiğim tema IE’de kötü görüntü verdi. Ama daha [...]
iksdf
06 Mayıs 2008
eyv. işime yaradı..
Evren YALÇIN
07 Haziran 2008
Kendi web sitemdede çıkan BOM sorununu php manuelde gördüğüm bir php kodla çözdüm.
Aşağıdaki kodu sayfanızın en tepesine yerleştiriyorsunuz. Ve sorununuz kökten çözümleniyor.
3 karakterlik utf-8 karakterinin üstüne boş yazıyor.
Saygılarımla…
vatan
26 Haziran 2008
hocam benim notepad++ da file-> encoding diye bir menu yok.
Muhittin Özer » Blog Arşivi » PHP ve MySQL’de sık yaşanan Türkçe karakter problemleri
21 Temmuz 2008
[...] 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 [...]
Fatih
22 Temmuz 2008
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.
Muhittin Özer » PHP ve MySQL’de sık yaşanan Türkçe karakter problemleri
27 Kasım 2008
[...] BOM olmadan seçeneğiyle yazmak. Bu konuda detaylı bilgiyi yakuter‘in blogundaki UTF-8 BOM (Byte Order Mark) Nedir? yazısında [...]
yakuter » Yakuter.Com Facebook Grubu
03 Ocak 2009
[...] 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 [...]
WordPress’te Türkçe Karakter Hataları · Yakup Gövler'in Not Defteri
22 Ocak 2009
[...] 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 [...]
nihilanth
21 Şubat 2009
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?
yakuter
22 Şubat 2009
Dosyayı gönderirken FTP ayarlarından dosya değişiyor olabilir diyeceğim ama tamda emin değilim buna neyin sebep olabileceği konusunda.
fatih taşdelen
01 Mart 2009
ç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
ilyas TEKER
02 Haziran 2009
22 senedir BOM suz yaşamışım meğer : ) 1 haftadır çözemediğim problemi BOM ile çözdüm. Biraz araştırdım nette meğerse sorun olabilecek kadar kurnazmış BOM.
Üstelik pluginlerin de çalışmasını değiştirebildiğini biliyor muydunuz?
Fikret
21 Temmuz 2009
Teşekkürler.Makale çok aydınlatıcı oldu.
İstanbul Yemek Şirketleri
02 Eylül 2009
Walla kardeş harikasın. Şu makalen olmasaydı günlerim bu problemi çözmekle geçecekti. 5 dk’da tüm sistemi toparladım sayende.
Allah razı olsun.
Çağlar
22 Ekim 2009
Teşekkürler.
Mustafa DEMİR
07 Kasım 2009
Sormak istediğim husus sayfamı BOM’lu UTF-8 yaptığım anda gerçekten sıkıntı yaratabilir mi?
Bu arada çok teşekkür ederim Erhan bey. Gerçekten çok yararlı ve işime yarayan bir makale oldu. Kaç gündür header ve session hataları ile uğraşırken ilaç gibi geldi.
Tekrar teşekkür ediyorum.
kral
21 Aralık 2009
Öncelikle bu konuya acıklık getirdiginiz için çok teşekkur ederim.Bendede ayni sorun vardi wp temam ei6 da sayfanın kaynak kodlarına bakınca karekter hatalari veriyordu.Anlattıgınız şekilde dosyaları düzelttim fakat sayfalardaki sorun halolmasina ragmen indexte hala ayni sorunu veriyor.Ayrica nihilanth arkadaşında dedigi gibi bazen notepad++ ile dosyalari düzeltiyorum tekrar baktıgımda yine ANSI olarak okuyor.Bir kaç denemeyle bunuda aştım ama indexte hala ayni sorun bulunuyor.Bu durum için yapmamız gereken başka bir bişey varmı?.Şimdiden teşekkurler kolay gelsin.
Behçet MUTLU
26 Aralık 2009
Harika bir makale olmuş, ellerine sağlık. Oldukça dikkat edilmesi gereken ve karşılaşsak bile bir türlü sebebini bilemediğimiz bir sorundu. Ben de kendimce farklı çözümlerle çözüyordum bunu, örneğin; yeni bir dosya açarak tüm kodları oraya kopyalamak… Karakter kodlaması sorunları ne zaman düzeltilecek çok merak ediyorum. Yazılım geliştirirken karakter kodlamalarındaki hataların da göz önünde bulunması gerekiyor bence. Günümüz yazılım mühendisleri pek te önemsemiyor ancak sizin de belirttiğiniz gibi, çok büyük sorunları yanında getirebiliyor.
Tanerkaymaz
03 Şubat 2010
Merhaba, ben sitemi HTML Validator sitesinde tarattırdığımda şöyle bir hata mesajı ile karşılaştım.
Sorry, I am unable to validate this document because on line 132 it contained one or more bytes that I cannot interpret as utf-8 (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication.
The error was: utf8 “xFE” does not map to Unicode
Bu hatayı araştırırken açtığınız konuya denk geldim ve dediklerinizi uyguladım yanlız uygulamadan sonra sitenin üzerinde boşluk oluştu aslında tam tersi olması gerekliydi ancak dediklerinizi yapınca meydana geldi şimdi BOM’da yapsam UTF-8 de yapsam sitenin üzerinde 1 satır boşluk oluyor.Birinci sorum bu olsun aslında konunuzla tam alakalı değil ama HTML Validator sitesinden aldığım hata hakkındada bilginiz varsa ve paylaşırsanız sevinirim.
yakuter
03 Şubat 2010
@Taner Bey, sitenizi tarayıcıda açıp kaynak koduna bakın. ©, • gibi karakterler kod ile değil de doğrudan yazılmışsa sorun yaratırlar çünkü bunlar uygun UTF 8 karakterler değillerdir. Bu konuda daha fazla yardım için SEO Teknikleri forumuna başvurabilirsiniz.
Dosyanın üzerinde boşluk olması konusunda da dosyadan silemiyorsunuz büyük ihtimalle malum kodu. Tavsiyem yeni bir php dosya yaratın ve içi boş ike UTF-8 yapın. Ardından diğer dosyalardaki metni kopyalayıp yapıştırın ve dosya ismini olması gerekenle değiştirin. Düzelir sanırım.
kadir
28 Mart 2010
3 kez sitenin tüm kodlarını gözden geçirmeme sebep olan satır atlamanın header’deki utf8 bom’undan kaynaklandığını tesadüfen farkettikten sonra yaptığım aramada bu nadide bilginize ulaştım. geç oldu ama faydalı oldu, teşekkür ederim.
Kahraman
26 Haziran 2010
Sitemde wp kurulu ve makalede de dediğiniz gibi üstte bir boşluk oluyor ve w3.org baktığımda sadece 1 warning görünüyor.
"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. "
Notepad++ da açın demişsinizde ben hangi dosyayı açacağım. Temanın bütün dosyalarınımı açmam gerekiyor..
Kahraman
26 Haziran 2010
Notepad++ programını indirip dosyayı açtım ama zaten programda "UTF-8 without BOM" seçili durumda. değiştirip tekrar seçince de karakterler falan bozuluyor. Ne yapmam gerekiyor iki gündür w3 de hataları gidermeye çalışıyorum. Şimdi bir tek bu kaldı.
yakuter
26 Haziran 2010
Tüm dosyalarınızı kontrol edin. O da olmazsa Ultra Edit gibi bir düzenleyici programı deneyin.
kahraman
27 Haziran 2010
Yardımlar için çok teşekkür ederim. Şu anda w3 de hiçbir hata görünmüyor ama sitenin en üstündeki boşluk hala gitmedi. Onu nasıl düzeltebilirim.
yakuter
27 Haziran 2010
Yukarıda anlatılan şeyleri yaparak düzeltebilirsin :) Özellikle header.php dosyası.
kahraman
27 Haziran 2010
üstteki işlemleri uyguladım zaten :) Şu anda sitede hiçbir hata falan yok. bir tek en üst satırda boşluk var. :)
fatih
03 Temmuz 2010
Bir dizi teşekkürün altına bir teşekkür de ben edeyim. Üç yıldır bu işle uğraşıyorum ufak ufak ilerliyorum. UTF-8 işime geliyor açıkcası, o yüzden seviyorum. Ama o bir satır boşluk beni deli etmişti. Google bot o bir satırı – şeklinde okuyor, sayfa kaynağına bakınca da sayfanın başında bir adet lanet olası “-” görüyordum. Bunu kendi yöntemlerimle çözdüm. Bütün dosyaları DRW ile yaratıp, DRW ile yaratılmayanları da kodları kesmek suretiyle DRW ile yeni bir dosya açıp yeniden oluşturmak. Bunu yaptığımda o lanet – görünmez olmuştu. Sorun da notepad++ ‘da kaynaklanıyor diyordum kendi kendime bunları bilmezden evvel. Meğer ben winthout BOM seçmezmişim de ondan olurmuş.
Abdullah
13 Temmuz 2010
Tam 4 saattir denemediğim yöntem araştırmadığım kaynak kalmadı çok teşekkür ediyorum bu pek bilinmeyen ama ÖNEMLİ olan bilgiyi bizlerle paylaştığın için..
Kalpsiz
11 Ağustos 2010
Ozamanda Türkçe karakter hatası veriyor??
Cihan
29 Eylül 2010
Allah razı olsun, başka hiçbirşey demeye gerek yok. Kendim çok uğraştım, sonra sizin makalenizi buldum ve anında sorun çözüldü. Çok teşekkürler…
oktay
17 Kasım 2010
Merhaba.
Css ve PHP dosyalarını notepad++ ile tanışana kadar notepad ile düzenliyordum. Türkçe karakter sorunu yaşamamak için de belgeleri ANSI formatından UTF-8 formatına dönüştürüp kaydediyordum. Bu da sayfalarda kaymalara neden oluyordu haliyle. ben de tekrar css ile oynayarak düzeltmeye çalışıyordum. Son 1.5 gündür de bu sorunla uğraşıyordum :)
Burada bu çözümü bulmak herşeyi kökünden çözdü. Çok teşekkür ederim verdiğiniz bilgiler için. Kolay gelsin.
ikizsohbet
09 Aralık 2010
Hocam çok yararı oldu anlatıklarınızı mükemmel ders olmuş gerçekten bilmeyenlere bu hatayı birden fazla sitemde alıyordum şuanda hepsini düzeltim tekrardan teşekkürler
tasarhane
07 Nisan 2011
notepad++ da encoding kısmında "encode in" ve "convert to" farkı var.
dosyanızı düzenledikten sonra değiştirmek isterseniz "convert to" kısmını kullanırsanız iyi olur.
yani;
convert to utf-8 without bom
tasarhane
07 Nisan 2011
Bir de setting>preference penceresine girince new document sekmesindeki encoding bölümünden utf-8 without bom seçeneğini işaretlerseniz yeni dosyalarınız bu ayarla açılır.
kutucuğuda işaretleyin sonradan açtıklarınızda otomatik çevirilsin.
Göktürk
20 Mayıs 2011
ben ne yaptıysa olmuyor
yıllardı notepad++ kullanırım ama kullandığım wp temsında unucode ansi görünen yer
ne yaparsam değişmiyor.
dw ile bakıyorum kodlama utf-8 notepad ile bakıyorum unicod.
sitemde türkçe karakterler görünmüyor.bozuk çıksa keşke.hiç çıkmıyor.
temayada okadar çok hayranımki ne yapacağım bilemiyorum.
konu hakkında destek verebilecek arkadaşlar bekleniyor.
saygılarımla.
yakuter
04 Ağustos 2011
Valla konu Google olunca ne desek boş. Yani sorun olmaz derim, olur sonra ben arada kalırım :)
Yakuter web tasarım, yazılım geliştirme, IPhone uygulamaları gibi konular da Üreticy'yi öneriyor.
Masaüstünüzü iPad arayüzü şeklinde kullanabilmeniz ve uygulama merkezi sayesinde sunduğu onlarca uyg...
YouTube ve diğer popüler çevrimiçi video sitelerinden video indirmek istiyorsanız kullanabileceğiniz...
Elder Scrolls V Skyrim için Bethesda Softworks tarafından hazırlanmış duvar kağıtları....
Kaybettiğiniz, yanlışlıkla sildiğiniz veya virüslerden mağdur olduğunuz dosyalarınızı bu programla k...
Star Wars Knights of the Old Republic 2 oyunu için hazırlanmış en güzel duvar kağıtlarını sizin için...
Yazılan yazılardan ilk siz haberdar olun, yeni yazılar e-postanıza gönderilsin.
yakuter.com © 2006-2010 Erhan Yakut. Site tasarım Cenk Akyıldız - (Tema Bilgisi).
Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.