az yazılan bir günce.
türkçe karakter sorunu olarak etiketli yazılar
UTF-8 ve Türkçe Karakter problemi
11 Nis
Php Mysql tabanlı bir çalışma yapıyorsanız, Türkçe karakterlere en mantıklı çözüm UTF-8 kullanmak. Ama genellikle işin kolayı olan iso-8859-9 yaparak sorunu kolay yolldan çözmeyi tercih ediyoruz, fakan bu ilerleyen zamanlarda projeye ajax tabanlı veri alışverişi kullanmaya geldimi sorunlar başlıyor. Bunun çeşitli çözüm yöntemleri var elbette. Ancak en baştan proje dosyalarının oluştururken ve mysql veritabanını oluştururken UTF-8′i tercih etmemiz sorunun kalıcı olarak çözülmesini sağlayacaktır.
UTF-8 olduğu halde sorun olması : Utf-8 olarak kaydettiğiniz bir dosyayı sunucuya yüklediğinizde TR karakterlerin sorun çıkartığını görebilirsiniz. Bunun muhtemel sebebi UTF-8 BOM (Byte Order Mark) seçimi yapılmış olmasıdır. Bazen include edilmiş dosyaların içerisinde olmadığı halde  şeklinde bir karakter ile döndüğünü görebilirsiniz. Bunun sebebi işte UTF-8 BOM olarak kaydedilmiş bir dosyanın başına bu dosyanın utf-8 standardında kaydedildiğini gösteren işarettir. Bunun sıklıkla yarattığı problemlerin başında SESSION işlemlerinde session_start(); dediğinizde size “Warning: Cannot modify header information – headers already sent by” şeklinde bir uyarı mesajı vermesi. @session_start(); diyerek bu uyarıyı es geçmek mümkün ama bunun sebebi BOM işareti yada dosyanın başına yazılmamış olması, yada boşluk karakterlerini içermesi. Bu sorunu aşmak için Notepad++ programında Biçim Menüsünden UTF-8 Without BOM şeçilerek yada Dreamweaver programında sayfa özelliklerinden Dil Kodlaması altındaki Unicode İmza Ekle(BOM) seçeneğini iptal ederk kaydetmeniz yeterli olacaktır.

