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