无线我的无限

让无线技术给生活带来无限快乐
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ajax成功返回数据中存在多余字符的处理

Posted on 2017-09-01 12:09  freemobile  阅读(548)  评论(0编辑  收藏  举报

ajax里有需要判断反馈的字符串是否为“ok”,在浏览器里调试,看到返回的内容明明是“ok”,但是if(“ok”==data)判断为false,用alert打印内容也是ok,但是打印长度的时候却是3。

于是把返回内容每个字符的16进制打出来

  var hexCharCode = [];
  hexCharCode.push("0x");
  for(var i = 0; i < data.length; i++) {
    hexCharCode.push((data.charCodeAt(i)).toString(16));
  }
alert(hexCharCode.join(""));
alert(data.length);

发现内容是0xfeff6f6b,ok前面有不可见字符feff,这个是utf的bom头导致的问题,如何解决?看了些资料,很多人是在代码里去做判断,当然这样可以一劳永逸,不过还有一个简单的方法,就是用ultraedit之类的编辑器把php文件另存为utf8-无bom头的文件,然后返回的内容里就不带feff了。