2017-11-28 8 views
1

私はhttpsで自分のウェブサイトを持っており、ajaxでデータを取得しようとすると間違った文字が表示されます。私のcharsetがある:メタコンテンツ= "text/htmlの;のcharset = UTF-8"httpsで文字セットutf-8でテキストを印刷すると文字が正しく表示されない

$.ajax({ 
     type:'get', 
     url:'{!!URL::to('findCiudad')!!}', 
     data:{'departamento':departamento}, 
     beforeSend : function(xhr) { 
      xhr.setRequestHeader('Accept', "text/html; charset=utf-8"); 
     }, 
     success:function(data){ 

      op1+='<option value="0" selected disabled>Select City</option>'; 
       for(var i=0;i<data.length;i++){ 
        op1+='<option value="'+data[i].local+'">'+data[i].desc+'</option>'; 
      } 

      $("#ciudad_entrega").html(" "); 
      $("#ciudad_entrega").append(op1); 

     }, 
     error:function (xhr, ajaxOptions, thrownError) { 
      alert(xhr.status); 
      alert(thrownError); 
     } 
    }); 

これは私のコントローラであり、私はすでに解決し、あなたは変換する必要はutf8_encode

$result = array(); 
    foreach ($datos as $key => $dato) { 
     //return $key; 

     array_push($result, 
      array(
       'localidad' => utf8_encode($dato->localidad), 
       'descripcion' => utf8_encode($dato->descripcion), 
       'oficina' => utf8_encode($dato->oficina), 
       'cod_departamento' => utf8_encode($dato->cod_departamento) 
      ) 
     ); 

    } 
    return response()->json($result, 200, ['Content-type'=> 'application/json; charset=utf-8']); 
+0

「utf8_encode()」/「utf8_decode()」には文字通り唯一の用途があり、それはISO8859-1とUTF8の間の変換です。 *これらの関数を他の*に使用しないでください。入力エンコーディングが8859-1であることが確実でない場合は、データが破損します。 https://stackoverflow.com/questions/279170/utf-8-all-the-way-through – Sammitch

答えて

-1

で結果を変換しますwith:mb_convert_encoding()

mb_convert_encoding($ dato-> desc、 'UTF-8'、 'UTF-8');

関連する問題