Ajax正在发送给PHP
Ĺ asija-kabina
而不是
Šasija-kabina
虽然我确实在任何地方宣布了charset。 在html文件的头部我得到了这个:
<meta charset="ISO-8859-2">
在PHP文件中我得到了这个:
header('Content-Type: text/html; charset=latin2');
这是我的ajax函数,其中“str”是一个json数组:
function updateField(str, id, prevvalue, value, vehicletype){
$.ajax({
type: "get",
url: "inc/ajax/form_rest.php",
data: { q:str, prevvalue:prevvalue, value:value, vehicletype:vehicletype },
contentType: "application/json;charset=latin2",
success: function(html) {
$('#'+id).html(html);
}
})
.done(function(){
$("#"+id).removeAttr("disabled");
if($("#"+id+" option").length == 2){
$("#"+id).val($("#"+id+" option:last-child").val()).change();
}
if($("#"+id+" option:last-child").val() == ""){
$("#"+id).attr("disabled", "disabled");
}
});
}
尽管如此,我得到了错误的输出。任何人都可以帮我这个吗?
答案 0 :(得分:1)
我认为您需要为字符集使用正确的ISO名称,例如改变:
contentType: "application/json;charset=latin2",
到
contentType: "application/json;charset=ISO-8859-2",
我还认为使用UTF-8以外的任何东西会让你在项目的后期遇到麻烦,因为PHP中的json_encode实际上只支持UTF-8。
答案 1 :(得分:0)
你为此使用外部javascript文件吗?我认为你还需要设置包含javascript文件的字符集
<script src="myscripts.js" charset="latin2"></script>
但我真的建议你在服务器和客户端脚本上使用UTF-8