之前都是用cleanbom.php来去除BOM的。今天运行提示没有异常文件,但是用Fiddler还是看到了EF BB BF,删除缓存也无效,将cleanbom.php上传到生产环境也提示没有异常。
这里充分鄙视下Beyond Compare,也是怪我不会用。要对比出BOM,需要使用“二进制比较”而不是“基于规则的比较”。
为什么cleanbom.php也没能发现呢,猜测原因是权限不足,无法列出某些文件夹。
所以还是补习了一下linux系统下该怎么处理:
grep -r -I -l $'^\xEF\xBB\xBF' ./
顺便记住两个去掉BOM的方法,还未使用
find . -type f -exec sed -i 's/\xEF\xBB\xBF//' {} \;
#or
echo -ne '\xef\xbb\xbf123456' | awk '{if(NR==1)sub(/^\xef\xbb\xbf/,""); print}'
在编辑器下去掉BOM
#去掉
:set nobomb
#保留
:set bomb
因为只有一个文件,所以,呵呵~