重音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请求的编码。