linux php bom

之前都是用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

因为只有一个文件,所以,呵呵~

时间: 2024-09-17 00:44:04

linux php bom的相关文章

Linux 查找bom头文件,清除bom头命令

1.查找bom头文件 grep -r -I -l $'^\xEF\xBB\xBF' ./ 2.替换bom头文件 find . -type f -exec sed -i 's/\xEF\xBB\xBF//' {} \;

关于windows下程序开发的中文乱码问题小结

笔者遇到的问题背景: windows 下使用notepad++6.7 ,ftp连接远程ubuntu主机,在本地创建远程主机文件,编辑后上传出现中文乱码. 笔者最开始不明白问题出在哪,因为设置了在notepad++中默认使用UTF-8编码格式进行新建文件,但依旧无效. 笔者一步步探索问题: 新建一个文件,写入纯英文html文本后上传至ubuntu主机,vi :set fileencoding显示此时为utf-8编码 上述文件新增几个中文,保存后上传至ubuntu主机,这个时候提示fileencod

Linux下查找包含BOM头的文件和清除BOM头命令 2014-08-16 12:30:50

Linux下查找包含BOM头的文件和清除BOM头命令 2014-08-16 12:30:50 分类: 系统运维 查找包含BOM头的文件,命令如下: 点击(此处)折叠或打开 grep -r -I -l $'^\xEF\xBB\xBF' ./ \xef\xbb\xbf是UTF8 BOM的16进制表示 这个命令会把当前目录及所有子目录下的BOM头删除掉. 点击(此处)折叠或打开 find . -type f -exec sed -i 's/\xEF\xBB\xBF//' {} \; 另一种方法: 点击

Linux下处理BOM头和^M的简单方法

Linux在网络服务器.嵌入式设备的市场上占有较大份额,Microsoft Windows在桌面操作系统上占有较大的份额,因此有很多的人喜欢用Windows去控制操作Linux. 既然用Windows去控制Linux,难免导致Windows系统上的产生的文件以某种途径传到了Linux系统中,因而导致显示问题或者出现乱码的情况. 例如用Windows自带的"记事本"(notepad)程序默认保存的文件会在每一行的结尾处带有^M标记. PS: 一些常见的错误例子:有的人可能有疑问,为什么我

Linux下utf-8 BOM 的检查和删除 (65279错误解决办法)

Java代码在转换为UTF-8编码后,Eclipse编译运行没有问题,但是用Maven编译时,抛出非法字符65278错误. 原因在于,转换后文件头部带有BOM信息,而Maven不支持,删掉文件头的BOM信息即可. 可以通过以下命令,在命令行中批量删除文件中BOM信息: perl -pi.bak -w -e 's/^\xEF\xBB\xBF' *.java 然后,删除.bak后缀的备份文件: rm *.java.bak 现在可以查看文件中是否,还带有BOM信息,可以通过以下命令查询: grep -

linux给一个文件头部添加内容,给UTF-8添加BOM头

假如文件内容是这样的 123456789 123456789 123456789 123456789 123456789 要在第一行加一个abc sed -i '0,/^/s/^/abc' 文件名字 扩展用法,给一个utf-8的文本文件添加bom头 sed -i '0,/^/s/^/\xEF\xBB\xBF/' 文本文件.txt 原文地址:https://www.cnblogs.com/toumingbai/p/12128847.html

Linux下查找包含BOM头的文件和清除BOM头命令

find . -type f -exec sed -i 's/\xEF\xBB\xBF//' {} \;

linux下批量删除utf8 bom

grep -rIlo $'^\xEF\xBB\xBF' . | xargs sed --in-place -e 's/\xef\xbb\xbf//'

BOM的来源是不可能出现的字符,GB2312双字节高位都是1,Unicode理论的根本缺陷导致UTF8的诞生

Unicode字符编码规范 http://www.aoxiang.org 2006-4-2 10:48:02Unicode是一种字符编码规范 . 先从ASCII说起.ASCII是用来表示英文字符的一种编码规范,每个ASCII字符占用1个字节(8bits) 因此,ASCII编码可以表示的最大字符数是256,其实英文字符并没有那么多,一般只用前128个(最高位为0),其中包括了控制字符.数字.大小写字母和其他一些符号 . 而最高位为1的另128个字符被成为“扩展ASCII”,一般用来存放英文的制表符