源文件具有:

header('Content-type: text/html; charset=iso8859-1');

来源AJAX(jQuery的)脚本是:

$(document).ready(function() {
$.ajaxSetup({
    cache: false
});

$("#searchfield").keyup(function(){
    $("#insert_search")
        .load('ajax/searchobjects.php', {search_word:   $("#searchfield").val()}, function(){
        });
    });
});

目标文件:

header('Content-type: text/html; charset=iso8859-1');

echo $_POST['search_word'];

数据发送:

é

结果是:

é

所有的文件:

Western (ISO Latin 1) (using TextWrangler)

有趣的事情:我可以插入记录到MySQL只是口音细

有帮助吗?

解决方案

这是因为你显示é(0xc3,0xa9)的UTF-8编码为Latin-1的。所以search_word被编码为UTF-8,当它发布到PHP。

尝试此,

$.ajaxSetup({
        scriptCharset: "iso-8859-1",
        cache: false
});

其他提示

这是因为一个AJAX调用的默认返回类型是UTF-8。尝试

utf8_encode($output);

在你的Ajax片段。可替换地,可以改变如上所述 href="https://stackoverflow.com/questions/553463/jquery-ajax-character-encoding-problem"> AJAX请求的编码

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top