Emre Supçin – Kişisel Blog | Php ve MySQL’de TR Karakter Sorunu? Çözümü Nasıldır?

Php-ile-MySQL-TR-Karakter-Sorunlari_emresupcinMerhaba arkadaşlar,

Bu makalemizde Php (Hypertext Preprocessor) ve MySQL ‘de oluşan türkçe karakter sorunundan ve çözümünden bahsedeceğim. Php, internet için yaratılmış, sunucu taraflı, çok geniş kullanımlı, genel amaçlı, HTML içerisine gömülebilen betik ve programlama dilidir. MySQL ise altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı, çok kullanıcılı, hızlı ve sağlam bir veritabanı yönetim sistemidir.

 
 
http://www.iana.org/assignments/character-sets adresinden de görebileceğiniz üzere standartlaşan onlarca karakter kodlaması vardır. Karakter kodlaması, karakter setlerinden oluşur. ISO-8859, MS-Windows ve Unicode en çok kullanılan karakter kodlamalarındandır. ISO-8859-9′da bir ISO-8859′un bir karakter setidir. ISO-8859 karakter seti dillere desteğini bölümler halinde vermiştir. İlk bölümde -bu bölüm ISO-8859-1 (Latin1) olarak bilinir- İngilizce, Franszıca, İspanyolca, Portekizce gibi dillere destek vermiştir. Türkçe desteği ancak 9. bölümde ISO-8859-9 (Latin5) karakter setiyle gelmiştir. MySQL’de bulunan latin5 ile ISO-8859-9 aslında aynıdır.

 

Türkçe diline destek veren karakter setlerinden en çok kullanılanları; ISO-8859-9 (latin5) Windows-1254 ve UTF-8’dir. UTF-8 çoklu dil desteği olan bir karakter setidir. Yani Türkçe’nin yanında örneğin Rusça’ya da destek vermektedir. Diğerlerinden farkı daha çok dile destek verdiğinden dosya büyüklükleri biraz daha fazla olabilmektedir.

 

Sitemizi oluşturmaya başlamadan önce açık kaynak kodlu bir yazılım olan Notepad++ (http://notepad-plus-plus.org/) programını kurmanızı öneririm. Bu programı kullanarak sitemizin tüm karakterlerinizin bozulmasına neden olabilen UTF-8 BOM (Byte Order Mark) sorununu ortadan kaldıracağız. Html ve php dosyalarımızı yazarken karakter setini UTF-8 kullanmak; her ülkeden ve dilden kullacılarının sitemizi ziyaret ederken karakter sorunları ile karşılaşmamasını sağlar.

 

Sitenizi oluşturmaya, html ve php kodlarınızı yazmaya başlamadan önce Notepad++’ı açıp Format menüsünden UTF-8 without BOM‘u seçin ve dosyalarınızı utf8 formatını kullanarak yazın. Notepad++’ın Settings>Preferences>New Document bölümünden de her yeni dosya oluştururken dosya formatının otomatik olarak utf-8 without bom olmasını sağlayabiliriz. Daha sonra html kodlarınızı yazmaya başlayabilirsiniz. HTML ile de sayfanızın karakter setini UTF-8 olarak ayarlamanız gerekiyor.arasına yerleştireceğiniz aşağıdaki kod ile bu işi yapacağız.

 

1
2  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

 

Şimdi MySQL veritabanımızı oluşturalım. Veritabanımızı oluştururken Karşılaştırma bölümünden utf8_turkish_ci yi seçmenizi öneriyorum. Böylelikle MySQL’de oluşturacağınız tüm tablo ve alanlar UTF8 kodlamasına göre oluşturulacak. Artık MySQL’den veri girişi yaptığınızda Türkçe karakter problemi olmadan verilerinizi görebiliyor olmalısınız. SET NAMES utf8 kodunu çalıştırmak içinde aşağıdaki kodları ekliyoruz.

 

1  <?
2     php mysql_connect("localhost","root","1234");
3   mysql_select_db("testdb");
4   mysql_query("SET NAMES UTF8");
5  ?>
Yazar
Yazar
Bilgisayar Programcısı, Web Tasarımcı, Üniversite Öğrencisi...
Twitter Facebook Google Linkedin Flickr YouTube

Önceki Yazı:Disk Yönetiminde ‘Disk Bölme’ Sorunu ve Çözümü?

Sonraki Yazı:Açık Kaynak İşletim Sistemlerinde Dosya Paylaşım Programları?

BENZER YAZILAR
YORUMLAR
SİZ DE CEVAP YAZABİLİRSİNİZ
Bu yazı hakkında görüşünüzü belirtin.

ES Web Tasarım Web Tasarım Blog Teması Emre Supçin Bu tema ES Web Tasarım tarafından düzenlenmiştir. Hiçbir şekilde kopyalanamaz.