PHP AJAX Türkçe Karakter Sorunu ve Çözümü

Binbir takla atmıştım zamanında bu sorunu çözebilmek için. Her iki dosya da iso kodlanmışsa veya her iki dosya da utf8 se, bir türlü istediğim olmuyordu. Bu dediğim tabi 2006/2007 yıllarındaydı. O zmandan bu zamana yeni çözümler üretilmiş olabilir ama ben hep bu çözümü kullandım. Hem okuma, hem de yazma kısmında sorunum o zmandır yok.


Öncelikli sorunum, xhr(Xml HTTP Request) ile çektiğim bir sayfanın karakter setinin UTF8 olarak algılanmasıydı. htaccess dosyamı açtım ve içine

HTACCESS kodu
    AddDefaultCharset ISO-8859-9

yazdım ve ilk basamaktaki sorunu kesinlikle çözmüş oldum. Tekrarlayım, "ISO-8859-9" ile kodlanmış sayfalar kullanıyorsanız, bu htaccess kodu kesin çözümünüzdür.

Veri çekmekteki problemi çözdükten sonra, veri yazmada bir problem olduğunu farkettim. Ben her ne kadar karakter setini iso biçimine çevirsem de, bir formu ajax ile yolladığım da hala bozuk karakterlerle karşılaşıyordum. Bunun içinse şu kodu yazdım

PHP kodu
  1. function ajax_utf_temizle($dizi) {
  2. return is_array($dizi) ? array_map('ajax_utf_temizle', $dizi) : iconv("UTF-8","ISO-8859-9",$dizi);
  3. }
  4. $_GET = ajax_utf_temizle($_GET);
  5. $_POST = ajax_utf_temizle($_POST);
  6. $_REQUEST = ajax_utf_temizle($_REQUEST);

Bu üç global değişkeni UTF biçiminden ISO biçimine alarak sorunlarımı tamamıyle çözdüm. Eğer siz de formlarınızı ajaxForm gibi eklentileri kullanmak istiyorsanız, hedefteki dosyaya bu kodları eklemeniz yeterlidir.

Benim sorunlarımı her zaman çözdü, umarım okuyanlarınkini de çözer ;)

Okunma: 575 , Oy Sayısı: 17 , Puan: 8.47

Etiketler

php ajax turkce karakter sorunu , ajax turkce karakter sorunu , ajax turkce karakter problemi , ajax turkce karakter , php ajax turkce karakter problemi ,

Sinan18 Ekim 2009 Pazar 03:37:42


teşekkürler aynı şekilde kafayı yedim sağolasın.
||




Yorumunuz