4.3/5 Görüntülenme: 15735

Php UTF-8 to LATIN5 (Türkçe kararkter düzeltme)

Mysql tablo kodlaması, Girilen Karakter seti, sayfa gösterim kararkter seti, sayfa mimetype kararkter seti ve mysql bağlantı kararkter kodlaması ile içeriğin hatasız gösterimi ayarlanır. Aşağıdaki kod sadece mysql verilerini alırken kodlamasını ayarlamak için kullanabilirsiniz. Bir diğer doğiştirme kodu ise utf-8 olarak size gelmiş verileri kullanırken tr kararkterlere çevirerek kullanmanızı sağlar. iconv() fonksiyonu sayesinde istediğiniz kararkteri çevirmek için kullanabilrsiniz.

 

Türkçe kararkter hatalarını düzeltmek için Şu adımları izleyebilirsiniz.

  1. Mysql kodlamanızı kontrol ediniz. Mysql Utf-8 unicode_ci ise ve içerisindeki verilerde utf8 girilmişse sayfaya yazdırırken sayfa yapısını utf8 yapmanız gerekir.
  2. İşlem yaptığınız sayfanın kararkter kodlamasını kontrol edin. Örneğin yazdir.php dosyanız var dosyayı sağ tıklayın birlikte açın not defteri ile açarak Dosya > Farklı kaydet seçin kayıt işlemi sırasında altta Kodlama seçimi vardır. Mysql utf-8 sayfanın metası utf-8 ama veriler hala bozuk görünüyorsa buradaki kodlama ASCI olarak kayıtlı olabilir. Veritabanınız latin5 ise burayı ASCI yapmalısınız. Özet olarak gelen ve işlenen kodlama ile aynı olmak zorundadır sayfa kodlamanız.
  3. Sayfanız ne olursa olsun sizin başka bir veritabanından aldığınız veriyi yazdırmanız gerekiyorsa sayfayı bozmadan yazdırma işlemi sırasında  iconv()  fonksiyonu kullanarak değiştirme işlemi yapabilirsiniz. Tek tek kararkterleri belirleyip replace etmekle aynı işlevi görür.
  4. Html sayfalarda <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> php kod olarak ise header('Content-Type: text/plain; charset=utf-8'); şeklinde kodlama belirlenir. text/plain kısmını text/xml yaparak sayfa çıktısının xml görünümü sağlanabilir, utf-8 türkçe kararkter için LATIN5 şeklinde değiştirilebilir.

Mysql türkçe kararkter ayarlamak için

 
// Utf-8 olan Mysql bağlantı kod satırının olduğu sayfaya bunlar eklenir:
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
 

 iconv()  UTF-8 kararkterleri türkçe karaktere çevirmek için

// Değişkene aktarılmış utf-8 için latin5 çevirme fonksiyonu
$Degisken=iconv("UTF-8", "ISO-8859-9",$Degisken);

Konu (47) ile ilgili admin @ limitsizbilgi.com adresine E-mail gönderebilirsiniz. İsa Şahintürk