Her karakter üzerinde değiştirme yapmadan bazılarında yapıp bazılarında yapmayınca problem kalmıyor denedim
<?php

function UtfDuzelt($gelen) {    
    $ajax_duzelt = array(
    '%u0131'=>'ı',
    '%u0130'=>'İ',
    '%u011F'=>'ğ',
    '%u011E'=>'Ğ',
    '%uFFFD'=>'ü',
    '%u00DC'=>'Ü',
    '%u015F'=>'ş',
    '%u015E'=>'Ş',
    '%u00F6'=>'ö',
    '%u00D6'=>'Ö',
    '%u00E7'=>'ç',
    '%u00C7'=>'Ç'
    );
    $utf_duzelt = array(
    iconv("UTF-8","ISO-8859-9",'Ü')=>'Ü',
    iconv("UTF-8","ISO-8859-9",'ü')=>'ü',
    iconv("UTF-8","ISO-8859-9",'Ö')=>'Ö',
    iconv("UTF-8","ISO-8859-9",'ö')=>'ö',
    iconv("UTF-8","ISO-8859-9",'Ç')=>'Ç',
    iconv("UTF-8","ISO-8859-9",'ç')=>'ç',
    );
    
    $gelen=strtr($gelen,$ajax_duzelt);
    return strtr($gelen,$utf_duzelt);
}

function ajax_utf_temizle($dizi) {
    return is_array($dizi) ? array_map('ajax_utf_temizle', $dizi) : UtfDuzelt($dizi);
}
$_GET = ajax_utf_temizle($_GET);
$_POST = ajax_utf_temizle($_POST);
$_REQUEST = ajax_utf_temizle($_REQUEST);
?>