重音ajax编码问题

时间:2009-12-14 23:00:44

标签: jquery ajax encoding character-encoding diacritics

源文件有:

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。

2 个答案:

答案 0 :(得分:1)

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

utf8_encode($output);

在你的ajax片段中。或者,您可以按照here所述更改AJAX请求的编码。

答案 1 :(得分:0)

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

试试这个,

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