我正在制作一份清单: http://ranglista.farmeramagame.hu/kereso/search2.php
在php文件中,我使用meta标签来处理重音。但为了显示结果,我使用了ajax,如果我在搜索字段中编写acce,ü,ő等重音符号,它就不会显示任何内容。
$(document).ready(function(){
var left = $('#box').position().left;
var top = $('#box').position().top;
$('#search_box').keyup(function(){
var value = $(this).val();
if(value !=''){
$('#search_result').show();
$.post('search3.php',{value: value},function(data){
$('#search_result').html(data);
});
} else{
$('#search_result').hide();
}
});
});
是否有可能以某种方式使其与重音一起使用?
答案 0 :(得分:0)
解决方案是对字符串进行URI编码,当它在Ajax中用于POST以进行字符串结束时。
在JS中,添加encodeURI(只是为了安全):
$.post('search3.php',{value: encodeURI(value)},function(data){
$('#search_result').html(data);
});
在PHP中,你需要urldecode()已编码的字符串,看起来字符串是utf8编码的。
因此,您需要在PHP中执行:
$value = utf8_decode(urldecode($_POST['value']));
如果这最终为你工作,你可以尝试删除JS中的encodeURI()调用和PHP中的urldecode()调用。 (然而,utf8处理是必要的。)