Ana Sayfa   Weblog   Realtime   Galeri   Arşiv   İletişim-Referanslar

Sayfa Yükleniyor...
  Merhaba , kişisel weblog alanıma hoşgeldiniz...  
 
    PHP ile AJAX 'ta Türkçe Karakter Problemi
  Çözümü
23 Ağustos, Perşembe 2007  
 
 

Forumlarda, bloglarda, web sitelerinde AJAX 'ta Türkçe Karakter Problemi ile ilgili onlarca makale, başlık ve soru yazıldı. Çözümler türlü yollarla gösterildi. Bu yanıtlardan PHP ile ilgili olanlarında genellikle düzenli ifadeler ve htmlspecialchars kullanılıyordu. Javascript kullanılan çözümler de vardı. 

Ancak ben PHP 4.0.5 ile gelen ve PHP 5 'in de vazgeçilmez fonksiyon gruplarından olan " iconv " serisini kullanana rastlamadım.

iconv fonksiyonu, yazıyı istenilen karakter setine çevirmenizi sağlar.Burada ihtiyacınız olan; ' Dönüşecek yazınız ' , ' dosyanızın karakter seti ' ve ' yazınızı çevirmek istediğiniz karakter seti ' dir.

<?php
echo iconv("ISO-8859-9", "UTF-8", "Üzümü ye bağını da sor !");
?>

Mesela yukarıdaki örnekte iso-8859-9 standart Türkçe karakter setiyle kaydedilmiş bir dosyamız var. Biz bunun içerisinden bir parça seçiyoruz ve bunu UTF-8 karakter setine çevirmek istiyoruz. Bu fonksiyon işimizi görecektir.

İşte bu örnekten yola çıkarak, AJAX 'ta Türkçe Karakter Problemi 'nin nasıl çözülebileceğini siz de gözünüzde canlandırmışsınızdır:

Diyelimki iso-8859-9 (genel Türkçe kodlama standartı) karakter seti ile kodlanmış bir programınız var. Bununla ajax 'ı işleme sokacak dosyanıza veri gönderdiniz. Javascript dosyanızın geri döndüreceği sonuç UTF-8 karakter setinde olacaktır. Sizin web siteniz, kodlarınız iso-8859-9 karakterinde olduğundan gelen veriler bozuk olacaktır. Bunları bir şekilde AJAX kullanırken düzenlemeniz gerekecek. İşte bu noktada devreye iconv girecek.

$favori_meyvesi = iconv("UTF-8", "ISO-8859-9", $_POST['fav_meyve']);

Şeklinde Javascript dosyanızın etkileştiği PHP dosyasında karakter setini düzenliyorsunuz. Burada örneğin " Favori Meyve " olarak <input> alanına Vişne yazılmış olsun. Kullandığınız AJAX 'ın görevide bunu seçeneklerize kayıt etmek veya güncellemek. Gönder tuşuna bastınız, " Vişne " Javascript ile ilgili PHP dosyasıyla iletişim kurdu, cevap olarak şu döndü:

- Vişne meyvesi favori meyvelerinize eklendi...

Eğer iconv kullanmasaydık ve dosyamızın, sitemizin karakter setide UTF-8 'den farklı olsaydı, "ş" karakteri bozuk gözükecekti.
 

Not: Yazılarımdan, makalelerimden alıntı yapan Forum, Blog ve Web Sitelerinden mutlaka  konuya link vermelerini ve isim ile dip not düşmelerini rica ediyorum.

 
     
  EkleBunu Sosyal Paylaşım Butonu  
    http://www.cimcimeonline.com/       # lesya :)) # @    25 Aralık, Salı 2007 11:54:24   
  Teşekkürler verdiğiniz bilgilendirme için.  
     
 
    www.azizce.com       # aziz # @    14 Eylül, Cuma 2007 22:16:22   
  Makalenin detaylarına dikkat edelim. AJAX ı sağlayan dosyanızın karakter kodu, betiği yazdığınız karakter kodu, HTML karakter kodu, veritabanı karakter kodu, bunların hepsi önemli  
     
 
    www.mrlmz.net       # Ömer # @    14 Eylül, Cuma 2007 21:07:46   
  Teşekkür ederiz buraya bunları yazmışsınız , yanlız ben hatadan çok sonuca bakıyorum buraya yazma sebebimde belki ben gibi birisi daha buraya gelip aynı sorunla karşılarşırsa benim yazdığım alternatifle dener diyerekten yazdım. Sunucumun php verisiyonu 4.4.7 yukardaki kod çalışmamıştı ... Kolay Gelsin ...  
     
 
    www.azizce.com       # aziz # @    14 Eylül, Cuma 2007 14:42:56   
  Ben size yukarıdaki kodun hata mesajlarını sordum. Siz başka bir çözüm yazmışsınız. Yukarıdaki kodda bir hata yok, ancak ilgili library yüklenmemiş olabilir, doğru kullanmıyor olabilirsiniz, kodlarınızda hata vardır. Bunları siz hata çıktılarınızı ve kodlarınızı iliştirmeden bilemeyiz. Bir şey söylüyorsanız lütfen bunu ispatlayın.

İlginize teşekkürler, iyi çalışmalar
 
     
 
 

   << Önceki Sayfa       Sonraki Sayfa >>   
 
   
blank
Arama İpucu
blank
  Temel Kaynaklar
  •  Giriş
  •  Üyelik
  •  
  • Arşiv Arşiv
  • RSS 2.0 RSS
  • Smart RSS Smart RSS
blank
  Kategoriler
blank
  Tavsiye Linkler