Ajax发送错误的字符集

Ajax is sending to PHP

Ĺ asija-kabina

Instead of

Šasija-kabina

While I did declare the charset everwhere. In the head of the html file I've got this:

<meta charset="ISO-8859-2">

In the PHP file I've got this:

header('Content-Type: text/html; charset=latin2');

And this is my ajax function where "str" is a json array:

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");
            }
        });
}

Nevertheless I am getting the wrong output. Can anyone help me with this?

do you use an external javascript file for this?, I think you need also to set the character set for the inclusion of the javascript file

<script src="myscripts.js" charset="latin2"></script>

but I really recommend you to use UTF-8 both on server and client side scripts

I think you need to use the correct ISO name for the character set, e.g. change:

contentType: "application/json;charset=latin2",

to

contentType: "application/json;charset=ISO-8859-2",

I also think that using anything other than UTF-8 is going to get you in more trouble later in your project as json_encode in PHP really only supports UTF-8.