\uFEFF(Unicode 编码:U+FEFF )。它是 ES5 新增的空白符,叫「字节次序标记字符(Byte Order Mark)」,也就是 BOM;
Unicode3.2 之前,\uFEFF 表示「零宽不换行空格(Zero Width No-Break Space)」;
Unicode3.2 新增了 \u2060 用来表示零宽不换行空格, \uFEFF 就只用来表示「字节次序标记字符(Byte Order Mark)」;
String.prototype.trim 是 ES5 增加的方法,对于老旧浏览器,还得使用自己实现的 trim;
至少在 低版本的 IE浏览器下 ,jQuery 1.7.2 是无法过滤字符串两端的 BOM 字符。
考虑到某些浏览器实现的 trim 不过滤 <NBSP> 或 <BOM>,
于是 jQuery 多加了一层检测,jQuery 1.8.1 在之前版本的基础上就添加了对BOM的过滤
上面是引用过来的
说白了就是文件的BOM问题,
架设js通过Ajax获取内容,并判断内容是否等于abc的时候,如果ajax请求的文件存在BOM头,那么结果就是\uFEFF\u0061\u0062\u0063,那么判断的时候就会出错。所以把\uFEFF去掉。
一般都不需要这样处理,需要这样处理大多是因为没有规范文档编码
Unicode3.2 之前,\uFEFF 表示「零宽不换行空格(Zero Width No-Break Space)」;
Unicode3.2 新增了 \u2060 用来表示零宽不换行空格, \uFEFF 就只用来表示「字节次序标记字符(Byte Order Mark)」;
String.prototype.trim 是 ES5 增加的方法,对于老旧浏览器,还得使用自己实现的 trim;
至少在 低版本的 IE浏览器下 ,jQuery 1.7.2 是无法过滤字符串两端的 BOM 字符。
考虑到某些浏览器实现的 trim 不过滤 <NBSP> 或 <BOM>,
于是 jQuery 多加了一层检测,jQuery 1.8.1 在之前版本的基础上就添加了对BOM的过滤
更多 请参考 :http://www.codesec.net/view/203109.html;
以上回答希望对你有所帮助,望采纳!
在window下面用记事本编辑文件的时候,如果保存为UNICODE或UTF-8,分别会在文件的开头加上两个字节“/xFF/xFE”和三个字 节“/xEF/xBB/xBF”。在读取的时候就可能会遇到问题,但是不同的环境对这几个多于字符的处理也不一样。
原因:这是编码格式引起的,没有采用UTF-8 无BOM格式导致,替换它主要是为了兼容一些乱码或者其他格式导致的问题。
方法:只需要将文本转化为 UTF-8 无BOM格式即可。