口音AJAX编码问题
-
19-09-2019 - |
题
源文件具有:
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请求的编码
不隶属于 StackOverflow