您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

神奇的%EF%BB%BF解决方法

2025/10/26 2:31:41发布16次查看
神奇的%ef%bb%bf
废话不多说上代码:
前台:
function on_post_form(){
var f = document.post_myform;
var s_paramname = document.getelementbyid(select_paramname).value;
f.action = __app__/index/select_infomessage-s_paramname-+encodeuricomponent(s_paramname)+.html;
f.submit();
}

$(document).ready(function(){
$('#select_paramname').keyup(function(){ //输入框的id为search,这里监听输入框的keyup事件
$.ajax({
type:get, //ajax提交方式为get提交
url:__app__/index/get_search_showdiv, //处理页的url地址
data:s_name=+encodeuricomponent($('#select_paramname').val()), //要传递的参数
success:function(data){ //成功后执行的方法
if(data != ){
var ss;
ss = data.split(@); //分割返回的字符串
var layer;
layer = ; //创建一个table
for(var i=0;imodel->table('forest')->field('f_hotname')->where($condition)->order('f_id desc')->limit(5)->select();
if($keyword !=){
foreach($info as $vo)
{
echo $vo['f_hotname'].'@';
}
}else{
echo ;
}
}

问题症状:比如输入“百度”    
在div   #searchresult   里显示:
百度杀毒
百度卫士
百度影音
如果选择第一项百度杀毒,火狐浏览器这样显示:
http://192.168.1.101/index/select_infomessage-s_paramname-%ef%bb%bf%百度杀毒.html
什么也没有。。。
如果选择第二项百度卫士,火狐浏览器这样显示:
http://192.168.1.101/index/select_infomessage-s_paramname-百度卫士.html
正常搜索,可以搜索到信息。其它项也是正常,唯独第一项就不正常。
度娘说是bom头,我所有页面都是去bom头的,编码也是utf8,尝试了很多也解决不了问题。
为什么会在第一项时候会加入%ef%bb%bf%,,,,, 在其它项都可以正常显示的。
------解决方案--------------------
public function get_search_showdiv()
这个函数所在php脚本文件有bom
------解决方案--------------------
utf-8 文件的 bom 头的十六进制表示是 efbbbf
url 编码后是 %ef%bb%bf
ajax 请求的 url 为 __app__/index/get_search_showdiv
显然这是在使用框架
框架在处理一个请求时,至少会加载 3 个文件
所以任何一个被加载的文件有 bom 头,返回的内容就会有 bom 头
连接变成 ....%ef%bb%bf百度杀毒.html
而不是 ....%ef%bb%bf%ef%bb%bf百度杀毒.html
就表示只有一个文件有 bom 头
ajax 收到的是形如 [email protected]@xxx@ 的串
bom 当然是附加在内容前面的: [email protected]@xxx@
拆分成数组后,自然是只有第一项有 bom 啦
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product