2

源文件有:

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 中。

4

2 回答 2

1

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

utf8_encode($output);

在您的 ajax 代码段中。或者,您可以按照此处所述更改 AJAX 请求的编码。

于 2009-12-14T23:02:19.967 回答
0

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

试试这个,

$.ajaxSetup({
        scriptCharset: "iso-8859-1",
        cache: false
});
于 2009-12-15T15:28:29.573 回答