重音ajax编码问题

源文件有:

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在发布到PHP时被编码为UTF-8。

试试这个,

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

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

 utf8_encode($output); 

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