精华内容
下载资源
问答
  • 什么是BOM头?如何去除文件中的BOM头 删除文件中的BOM头,使文件变成正常的UTF8文件
  • 在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因...
  • 什么是BOM头,如何去掉BOM头.zip
  • 主要介绍了PHP 下载文件时自动添加bom头的方法实例,有需要的朋友可以参考一下
  • 批量去除BOM头

    2017-06-30 09:12:31
    自动识别有BOM头的文件,批量去除BOM头
  • 所以要去掉带有bom的文件。 操作步骤 1.将bom.php文件放在项目根目录 2.我用的是xampp集成环境,首先进入到/opt/lampp/bin/ 然后在bin目录下执行 ./php /opt/lampp/htdocs/项目名/bom.php 回车即可。
  • 去除BOM头小工具

    2014-01-02 11:29:16
    选择要遍历的文件夹,输入相应的文件格式,程序会遍历此文件夹下所有相应格式文件,包括子文件夹下的文件删除其BOM头 勾选ANSI转为UTF-8,则会将相应格式但编码为GB2312,GBK,GB18030的文件转为无BOM的UTF-8文件 请...
  • 因为文件头信息输出BOM头信息,有时会对程序的执行结果造成影响,那么此时即应对这些文件的BOM信息进行去除
  • 去除BOM头小工具.rar

    2019-06-19 17:16:13
    能够批量对文件夹下的代码文件去除UTF-8 BOM头,还能对ASNI文件批量转换为UTF-8
  • UTF-8去BOM头工具

    2016-10-15 20:06:34
    我对之前的去BOM工具和需要的DLL进行了整合
  • PHP删除bom头方法实例

    2018-12-27 17:16:55
    PHP代码删除指定文件夹下所有文件的bom头,用于解决因为文件包含bom头导致的不必要问题。
  • 主要介绍了PHP批量删除、清除UTF-8文件BOM头的代码实例,需要的朋友可以参考下
  • php 删除bom头工具

    2019-04-18 09:28:13
    php 删除bom头工具 获取路径删除bom头
  • php清楚html中的bom头

    2018-04-02 10:24:39
    代码在项目根目录下面运行一下就OK了,能自动删除并且带bom头的所有php项目文件
  • 去除thinkphp 的 bom头

    2018-06-05 10:47:07
    放在(项目)根目录直接运行就好,然后就可以解决一些常见的 图片不显示 、莫名其妙的排版、bug等问题
  • C#获取去除文件bom头后的内容,可以解决不少乱码问题
  • java处理BOM头的XML

    2012-11-26 14:11:14
    java处理BOM头的XML,使用记事本编辑会产生BOM头,这样的XML在dom4j处理时会报异常。
  • bom头

    2019-02-12 11:36:06
    什么是BOM头 类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF...

    什么是BOM头

    类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于 PHP来说,BOM是个大麻烦。
      PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。由此造成即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部,因为在html一开头有这3个字符呢!

    window编辑器如果保存为utf8文件就会帮你加上BOM头,以告诉其他编辑器以utf8来显示字符
    但是在网页上并不需要添加BOM头识别,因为网页上可以使用 head头 指定charset=utf8告诉浏览器用utf8来解释.但是你用window自动的编辑器,编辑,然后有显示在网页上这样就会显示出0xEF 0xBB 0xBF这3个字符。
    这样网页上就需要去除0xEF 0xBB 0xBF,可以使用editplus 选择不带BOM的编码,这样就可以去除了

    展开全文
  • 去除bom头.java

    2021-02-26 19:36:42
    去除bom头.javapackage com.test;import java.io.File;import java.io.IOException;import java.util.Collection;import org.apache.commons.io.DirectoryWalker;import org.apache.commons.io.FileUtils;import org...

    去除bom头.java

    package com.test;

    import java.io.File;

    import java.io.IOException;

    import java.util.Collection;

    import org.apache.commons.io.DirectoryWalker;

    import org.apache.commons.io.FileUtils;

    import org.apache.commons.io.FilenameUtils;

    @SuppressWarnings("rawtypes")

    public class Utf8BomRemover extends DirectoryWalker {

    public static void main(String[] args) throws IOException {

    //删除指定文件夹下(含子文件夹)所有java文件的BOM,若构造器中参数为null则删除所有文件头部BOM

    new Utf8BomRemover("java").start(new File("D:\\dev\\jmwwork\\AuditSytem_bak"));

    }

    private String extension = null;

    public Utf8BomRemover(String extension) {

    super();

    this.extension = extension;

    }

    @SuppressWarnings("unchecked")

    public void start(File rootDir) throws IOException {

    walk(rootDir, null);

    }

    protected void handleFile(File file, int depth, Collection results) throws IOException {

    if (extension == null

    || extension.equalsIgnoreCase(FilenameUtils.getExtension(file.toString()))) {

    //调用具体业务逻辑,其实这里不仅可以实现删除BOM,还可以做很多想干的事情。

    remove(file);

    }

    }

    private void remove(File file) throws IOException {

    byte[] bs = FileUtils.readFileToByteArray(file);

    if (bs[0] == -17 && bs[1] == -69 && bs[2] == -65) {

    byte[] nbs = new byte[bs.length - 3];

    System.arraycopy(bs, 3, nbs, 0, nbs.length);

    FileUtils.writeByteArrayToFile(file, nbs);

    System.out.println("Remove BOM: " + file);

    }

    }

    }

    展开全文
  • 文件BOM头的介绍在 utf-8 编码的文件头部会含有一个BOM头,它占用三个字节,是用来标示该文件属于utf-8编码。现在已经有很多软件都可以识别bom头的,但还是有一些软件或编程语言是识别不了BOM头的,而php就属于不能...

    今天有小伙伴来请教,在php中如何去掉文件的BOM头或者php去除内容中的BOM头。正好今天是周未,也没有什么事,就写一写关于这方面的教程吧。

    文件BOM头的介绍

    在 utf-8 编码的文件头部会含有一个BOM头,它占用三个字节,是用来标示该文件属于utf-8编码。

    现在已经有很多软件都可以识别bom头的,但还是有一些软件或编程语言是识别不了BOM头的,而php就属于不能识别BOM头的编程语言。

    php 删除内容中的BOM头

    一般含有BOM头的内容都是从 utf-8 编码的文本文件中提取的,我们可以通过php对内容进行处理,来达到去掉 BOM 头的目的。

    php代码:<?php

    //定义一个删除BOM头的PHP函数

    function del_bom($contents){

    $charset[1] = substr($contents, 0, 1);

    $charset[2] = substr($contents, 1, 1);

    $charset[3] = substr($contents, 2, 1);

    if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {

    $rest = substr($contents, 3);

    return $rest;

    }else{

    return $contents;

    }

    }

    ?>

    函数的调用:<?php

    //从 TXT 文件读取内容

    $cont = file_get_contents('text.txt');

    // 删除内容中的 BOM 头

    echo del_bom($cont);

    ?>

    php 批量删除文件中的 BOM 头

    在使用记事本或一些其它别的编程软件编写PHP文件时,如果操作不规范很有可能会留有BOM头,如果是单个文件的情况下直接在编程软件中修改下即可,如果文件多了,就要使用批量的处理方法。下面就来说一个php批量去除文件中bom头的方法。

    php代码:<?php

    if (isset($_GET['dir'])) { //设置文件目录

    $basedir = $_GET['dir'];

    }else{

    $basedir = '.';

    }

    $auto = true; //定义是否去掉文件中的BOM头,如果为 false 则只检测是否含有 BOM 头

    checkdir($basedir);//检测目录

    function checkdir($basedir){

    if ($dh = opendir($basedir)) {

    while (($file = readdir($dh)) !== false) {

    if($file{0} == '.'){

    continue;

    }

    if($file != '.' && $file != '..'){

    if (!is_dir($basedir."/".$file)) {

    echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." 
    ";

    }else{

    $dirname = $basedir."/".$file;

    checkdir($dirname);

    }

    }

    }

    closedir($dh);

    }

    }

    //检查文件是否有BOM头,通过 全局变量 $auto 来控制是否删除文件中的BOM头

    function checkBOM ($filename) {

    global $auto;

    $contents = file_get_contents($filename);

    $charset[1] = substr($contents, 0, 1);

    $charset[2] = substr($contents, 1, 1);

    $charset[3] = substr($contents, 2, 1);

    if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {

    if ($auto) {

    $rest = substr($contents, 3);

    rewrite ($filename, $rest);

    return ("BOM found, automatically removed.");

    } else {

    return ("BOM found.");

    }

    }else{

    return ("BOM Not Found.");

    }

    }

    //重写文件,以达到删除BOM头的目的

    function rewrite ($filename, $data) {

    $filenum = fopen($filename, "w");

    flock($filenum, LOCK_EX);

    fwrite($filenum, $data);

    fclose($filenum);

    }

    ?>

    展开全文
  • java去掉txt文本的bom头信息,网上找了很多资料,自己整合了一下。
  • 谷歌,360浏览器,QQ浏览器中网页顶部有bom头;火狐浏览器显示正常。我试了好多种办法(Dreamweaver,Notepad++,网上搜了个去除bom的程序文件),最终还是没能解决,请问各位大神还有什么办法吗?这是谷歌浏览器中...

    谷歌,360浏览器,QQ浏览器中网页顶部有bom头;火狐浏览器显示正常。

    我试了好多种办法(Dreamweaver,Notepad++,网上搜了个去除bom的程序文件),最终还是没能解决,请问各位大神还有什么办法吗?

    这是谷歌浏览器中显示bom图的部分:

    回复讨论(解决方案)

    文件本身有汉字的,直接另存为 无BOM urf-8 编码

    文件本身没有汉字的,直接另存为 ANSI 编码

    从多语言版考虑,程序文件中是不应该之间特定语种的文字的。而是在运行时刻通过字典充填内容的

    文件本身有汉字的,直接另存为 无BOM urf-8 编码

    文件本身没有汉字的,直接另存为 ANSI 编码

    从多语言版考虑,程序文件中是不应该之间特定语种的文字的。而是在运行时刻通过字典充填内容的

    我就是用编辑器保存为无bom的utf-8编码,还是不行,但是在火狐浏览器中就正常。这是为什么?

    所有相关的文件都做了吗?

    不是所有的浏览器都能忽略 BOM 头的

    如果安装了netbeans,用它打开文件,

    如果文件有bom头,会在第一行最前面 显示一个小点,删除这个小点,保存就可以了

    所有相关的文件都做了吗?

    不是所有的浏览器都能忽略 BOM 头的

    这是我的程序 BOM found, automatically removed."); } else { return ("BOM found."); } } else return ("BOM Not Found."); } function rewrite ($filename, $data) {$filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); }

    我用这个去除bom也不行

    你这个程序对删除 utf-8 BOM 是有效的

    你可以这样看看$s = file_get_contents('http://localhost');echo bin2hex($s);贴出输出的前20个字符

    你这个程序对删除 utf-8 BOM 是有效的

    你可以这样看看$s = file_get_contents('http://localhost');echo bin2hex($s);贴出输出的前20个字符

    这段代码放在bom程序文件里还是?

    从你的截图上看,有  字样

    这应该是 unicode 的 BOM 头,要判断文件的头2个字符的内码值是否是 255 和 254

    那段代码单独现在一个程序里,执行

    从你的截图上看,有  字样

    这应该是 unicode 的 BOM 头,要判断文件的头2个字符的内码值是否是 255 和 254

    输出从第一个开始

    那段代码单独现在一个程序里,执行

    这个是单独执行的

    你 #10 的截图中有 3 个 utf-8 BOM

    你 #11 的截图中没有 BOM

    你 #10 的截图中有 3 个 utf-8 BOM

    你 #11 的截图中没有 BOM

    看不懂,咋解决了

    要去掉所有先关文件中的 bom

    你的那个程序放的位置很重要,再说你可能还引用了网站外的文件

    要去掉所有先关文件中的 bom

    你的那个程序放的位置很重要,再说你可能还引用了网站外的文件我的bom程序就放在项目根目录,和其它文件是兄弟关系。

    如果你将项目中的文件的 bom 都去除了,页面中却还有 bom 存在的话

    那么就表示你还使用了项目以外的文件

    如果你将项目中的文件的 bom 都去除了,页面中却还有 bom 存在的话

    那么就表示你还使用了项目以外的文件

    找的我都头大了,还是找不出来,谢谢你了

    那你就把 bom程序 放到网站的根上运行

    那你就把 bom程序 放到网站的根上运行

    我怀疑这跟一些js有关系,网站里有些程序文件,都是js写的

    难道你认为 js 文件不是 相关文件 吗?

    难道你认为 js 文件不是 相关文件 吗?

    刚我把网站首页里那些js代码去掉了还是不行

    难道你认为 js 文件不是 相关文件 吗?

    因为这段js中的路径是hm.src = "//hm.baidu.com/hm.js?54403e32d263feb8a8a2d4a630ccc73f";

    误以为跟它有关

    你的网站在公网上吗?贴出网址来

    你的网站在公网上吗?贴出网址来

    http://www.25mj.com/

    有 3 个 bom

    请贴出 index.php

    有 3 个 bom

    请贴出 index.php [东方美居官方网站]中国领先的装修-建材-家居领域电子商务网站,专业装修建材家具消费导购平台

    ico01.jpg欢迎来到东方美居建材灯饰广场

    logo.jpg

    tel.jpg

    太长了,我分开,这是第一部分

    有 3 个 bom

    请贴出 index.php

    总共要6万多字节,你说贴哪块我贴出来

    $url = 'http://www.25mj.com/';echo bin2hex(file_get_contents($url, false, null, 0, 20)), PHP_EOL;echo bin2hex(file_get_contents($url . 'inc.php', false, null, 0, 20));

    efbbbfefbbbfefbbbf3c21444f43545950452048

    efbbbfefbbbf

    访问你的 index.php,返回了 3 个 bom

    访问你的 inc.php,返回了 2个 bom

    显然你的 index.php、inc.php 以及在 inc.php 中 include 的一个文件中 有 bom

    你是怎么执行你的 去除bom程序 的?

    还是只放上去了没有执行?

    $url = 'http://www.25mj.com/';echo bin2hex(file_get_contents($url, false, null, 0, 20)), PHP_EOL;echo bin2hex(file_get_contents($url . 'inc.php', false, null, 0, 20));

    efbbbfefbbbfefbbbf3c21444f43545950452048

    efbbbfefbbbf

    访问你的 index.php,返回了 3 个 bom

    访问你的 inc.php,返回了 2个 bom

    显然你的 index.php、inc.php 以及在 inc.php 中 include 的一个文件中 有 bom

    你是怎么执行你的 去除bom程序 的?

    还是只放上去了没有执行?

    我的bom程序就在http://www.25mj.com/delete_bom.php 这里执行的,这里就是根目录

    $url = 'http://www.25mj.com/';echo bin2hex(file_get_contents($url, false, null, 0, 20)), PHP_EOL;echo bin2hex(file_get_contents($url . 'inc.php', false, null, 0, 20));

    efbbbfefbbbfefbbbf3c21444f43545950452048

    efbbbfefbbbf

    访问你的 index.php,返回了 3 个 bom

    访问你的 inc.php,返回了 2个 bom

    显然你的 index.php、inc.php 以及在 inc.php 中 include 的一个文件中 有 bom

    你是怎么执行你的 去除bom程序 的?

    还是只放上去了没有执行?

    我执行bom程序,页面没有显示找index.php文件的bom记录,难道bom程序没有执行index.php吗?

    $url = 'http://www.25mj.com/';echo bin2hex(file_get_contents($url, false, null, 0, 20)), PHP_EOL;echo bin2hex(file_get_contents($url . 'inc.php', false, null, 0, 20));

    efbbbfefbbbfefbbbf3c21444f43545950452048

    efbbbfefbbbf

    访问你的 index.php,返回了 3 个 bom

    访问你的 inc.php,返回了 2个 bom

    显然你的 index.php、inc.php 以及在 inc.php 中 include 的一个文件中 有 bom

    你是怎么执行你的 去除bom程序 的?

    还是只放上去了没有执行?

    目前运行index.php显示是这样的

    你的程序是怎么放到服务器上去的?

    你不能在本地处理好以后再上传吗?

    $url = 'http://www.25mj.com/';echo bin2hex(file_get_contents($url, false, null, 0, 20)), PHP_EOL;echo bin2hex(file_get_contents($url . 'inc.php', false, null, 0, 20));

    efbbbfefbbbfefbbbf3c21444f43545950452048

    efbbbfefbbbf

    访问你的 index.php,返回了 3 个 bom

    访问你的 inc.php,返回了 2个 bom

    显然你的 index.php、inc.php 以及在 inc.php 中 include 的一个文件中 有 bom

    你是怎么执行你的 去除bom程序 的?

    还是只放上去了没有执行?

    这里显示已找到bom,并已清除,但是运行index.php还是有bom。

    运行结果如楼上所示。

    你的程序是怎么放到服务器上去的?

    你不能在本地处理好以后再上传吗?

    我的程序就是在服务器上改的,我的bom程序也是我ftp传上去的,然后http://www.25mj.com/delete_bom.php运行。

    $url = 'http://www.25mj.com/';

    echo bin2hex(file_get_contents($url . 'index.php')), PHP_EOL;

    可以见到 3 个 bom

    但是你的 http://www.25mj.com/delete_bom.php 的报告中并没有这个文件!报告中的 index.php 都在子目录中

    你把 delete_bom.php 中的 rewrite 函数改成这样:function rewrite ($filename, $data) { if($filenum = fopen($filename, "w")) { if(flock($filenum, LOCK_EX)) { if(! fwrite($filenum, $data)) echo "$filename 写入失败

    "; }else echo "$filename 锁定失败

    "; fclose($filenum); }else echo "$filename 打开失败

    "; }看看是否是没有改写成功

    你把 delete_bom.php 中的 rewrite 函数改成这样:function rewrite ($filename, $data) { if($filenum = fopen($filename, "w")) { if(flock($filenum, LOCK_EX)) { if(! fwrite($filenum, $data)) echo "$filename 写入失败

    "; }else echo "$filename 锁定失败

    "; fclose($filenum); }else echo "$filename 打开失败

    "; }看看是否是没有改写成功

    我改成这个之后运行bom,就显示

    这样,bom还在。

    这就对了!文件都打不开,怎么去掉 bom 头?

    你把那些打不开的文件下载下来,改好后重新传上去

    这就对了!文件都打不开,怎么去掉 bom 头?

    你把那些打不开的文件下载下来,改好后重新传上去

    奥,怪不得了

    这就对了!文件都打不开,怎么去掉 bom 头?

    你把那些打不开的文件下载下来,改好后重新传上去

    这是为什么呢?难道我在服务器上的权限还不够?

    文件是只读的,就是这样

    你的文件不仅是在网站管理下,还在 ftp 管理下。这种情况是经常发生的

    写权限实际是由 ftp 控制的,你可尝试用 ftp 客户端修改文件权限

    写权限实际是由 ftp 控制的,你可尝试用 ftp 客户端修改文件权限

    懂了,谢谢了,终于解决了。

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • PHP项目bom头清除

    2021-09-14 10:35:54
    PHP项目全站代码扫描Bom头清除,防止Bom头存在造成的各种奇葩bug,已存在的Bom头问题也可修复。使用方法:复制文件到站点根目录,浏览器访问“域名/Eliminatebom.php”,等待页面显示的进度完成即可。
  • Go 处理文件BOM头问题

    2021-08-28 15:32:19
    Go 处理文件BOM头问题 背景 开发中遇到一个上传文件的需求,通过规定上传的文件会将数据按行排列。 Bug复现为,当上传的文件是csv (Win)系产品上传的时,会在文首解析出不可显的字符,导致后端在解析时会校验错误。...
  • 全自动识别文件编码转换成无bom头的UTF8文件 全自动识别文件编码转换成无bom头的UTF8文件
  • php去除bom头的方法

    2021-04-19 04:46:33
    php去除bom头的方法发布时间:2020-06-30 17:34:44来源:亿速云阅读:108作者:清晨这篇文章将为大家详细讲解有关php去除bom头的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,339
精华内容 8,535
关键字:

bom头