2014-02-15 1 views
0

영어로는 제대로 작동하지만 아랍어에서는 작동하지 않습니다. 나는 "فف"로 쿼리를 인쇄 $title, 나는 이런 식으로 이상한 문자를 발견 컨트롤러 : 여기 Codeigniter에서 JQuery 자동 완성 인코딩

SELECT * FROM users WHERE agent_id = 1 AND type LIKE "owner" AND (firstName LIKE "%\%D9\%81\%D9\%81%" OR lastName LIKE "%\%D9\%81\%D9\%81%") 

내 코드입니다

public function getResultExtend($title) {  
    $user_id = $this->session->userdata('id');   
    $result = $this->user->getOwners($user_id, $title);   
    foreach ($result as $user) { 
     $user->userName = utf8_encode(stripslashes($user->userName)); 
    } 
    echo json_encode($result); 
} 

보기 :

$(document).ready(function(){ 
      $('#search').keypress(function(e){ 
       if(e.which == 13) 
       { 
        e.preventDefault(); 
       } 

       var searched = $('#search').val(); 
       var fullurl = $('#hiddenurl').val() + 'index.php/agent/getResultExtend/' + searched; 

       $.getJSON(fullurl,function(result){ 
        var elements = []; 

        $.each(result,function(i,val){ 
         elements.push({ value: this.ID, label: this.firstName+' '+this.lastName}); 
        }); 

        $('#search').autocomplete({ 
         source : elements, 
         select: function (event, ui) { 
          console.log(ui.item); 
         }, 
         focus: function(event, ui) { 
          $("#search").val(ui.item.label); 
          return false; 
         }, 
         select: function(event, ui) { 
          $("#search").val(ui.item.label); 
          $("#owner_id").val(ui.item.value); 
          return false; 
         } 
        });  

       }); 
      }); 
     }); 

모델 :

function getOwners($user_id, $title) { 
    header('Content-Type:text/html; charset=UTF-8'); 
    //$title = iconv(mb_detect_encoding($title, mb_detect_order(), true), "UTF-8", $title); 
    $q = $this->db->query('SET NAMES utf8'); 
    $query = $this->db->query('SELECT * FROM users      
       WHERE agent_id = ' . $user_id . ' AND type LIKE "owner" 
       AND (firstName LIKE "%'.$this->db->escape_like_str($title).'%" 
       OR lastName LIKE "%'.$this->db->escape_like_str($title).'%") 
       '); 
    return $query->result(); 
} 

테이블의 데이터 정렬은 utf8_unicode_ci이고 열은 utf-8입니다. 그래서 문제가 어디에 있습니까?/설정/database.php 응용 프로그램에서

+0

PHPMyAdmin에서 쿼리를 시도한 후 제대로 작동하는 것으로 나타났습니다. – Yasmeen

답변

0

확인 행 :

또한
$db['default']['char_set'] = 'utf8'; 
$db['default']['dbcollat'] = 'utf8_general_ci'; 

당신의 .htaccess에 추가하려고

AddDefaultCharset UTF-8 

또는 직접은 index.php를 추가

header('Content-type: text/html; charset=utf-8'); 
+0

완료되었지만 아무 일도 없었습니다. ( – Yasmeen