去掉utf8 bom

原创 2012年03月30日 18:01:56
<?php   

if ( isset($_GET['dir'] )){

//设置文件目录   

$basedir=$_GET['dir'];   

}else{   

$basedir = '.';   

}   

$auto = 1;   

checkdir($basedir);   


function checkdir($basedir){   

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

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

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

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

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

}else{   

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

checkdir($dirname);   

}   

  }   

 }   

closedir($dh);   

}   

}   

 

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 == 1) {   

  $rest = substr($contents, 3);   

  rewrite ($filename, $rest);   

      return ("<font color=red>BOM found, automatically removed.</font>");   

}else {   

  return ("<font color=red>BOM found.</font>");   

}   

}else{

return ("BOM Not Found.");   

}

}   

 

function rewrite($filename, $data) {   

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

flock($filenum, LOCK_EX);   

fwrite($filenum, $data);   

fclose($filenum);   

}   

?>  

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用editplus等编程工具时UTF-8编码去掉BOM头方法(转载备查)

原文地址:http://www.dedecms8.com/db/php_bc/2928.html Unicode规范中有一个BOM...
  • rchm8519
  • rchm8519
  • 2015年05月05日 10:49
  • 3735

Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题,及处理方法

在Windows下用文本编辑器创建的文本文件,如果选择以UTF-8等Unicode格式保存,会在文件头(第一个字符)加入一个BOM标识。 这个标识在Java读取文件的时候,不会被去掉,而且Stri...
  • ClementAD
  • ClementAD
  • 2015年07月31日 13:04
  • 8674

VS2015支持UTF-8 with BOM编码格式处理中文、西班牙文、法文等非英文字符

VS2015支持UTF-8 with BOM编码格式处理中文、西班牙文、法文等非英文字符 Detail: 在使用VS2015编译ImageMagicK库时,由于其中源码文件带有非英文字符串,导致VS编...
  • SkylineV
  • SkylineV
  • 2017年05月24日 16:17
  • 995

去掉Bom头的方法和为什么要清除Bom头

什么是bom头? 在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这...
  • libinemail
  • libinemail
  • 2016年01月15日 15:43
  • 1240

【转载】utf-8与utf-8(无BOM)的区别

BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的...
  • forest_fire
  • forest_fire
  • 2016年03月21日 10:53
  • 1494

字符编码的历史总结,UTF8的编码规则,文件BOM的由来,笔记

要将文字用计算机存储起来,就必须将每个文字和一个对应的二进制码建立映射关系,下面就是文字编码的演变历史的简单总结,推荐原文 utf8编码原理详解 http://blog.csdn.net/baixia...
  • Gavin_new
  • Gavin_new
  • 2016年10月19日 20:59
  • 327

Qt实现的gbk/utf8无bom文本转码小工具

1、用到了QDir QDirIterator 递归文件目录 2、QTextStream 以某种编码格式读取文本保存到QString,然后以另一种编码格式保存文本 3、界面很简单,如下: ...
  • bladeandmaster88
  • bladeandmaster88
  • 2017年02月05日 15:46
  • 429

UTF-8编码格式的Byte Order Mark问题

前两天同事编写的SQL Server数据库脚本文件交给我运行时,出现了syntax error的错误,但将文件内容拷贝到SQL Server Management Studio里面运行时却一切正常。。...
  • zhuihunke_2008
  • zhuihunke_2008
  • 2016年12月01日 15:47
  • 197

c语言如何识别无BOM的UTF8文本

UTF-8编码的文本文档,有的带有BOM (Byte Order Mark, 字节序标志),即0xEF, 0xBB, 0xBF,有的没有。Windows下的文本编辑器在保存UTF-8格式的文本文档时会...
  • bladeandmaster88
  • bladeandmaster88
  • 2017年01月28日 20:49
  • 1083

UTF-8文件的BOM头的来由及去除方法

1. 什么是BOM头     在utf-8编码文件中BOM在文件头部,占用三个字节,用来标识该文件属于utf-8编码,现在已经有很多软件识别BOM头,但还是有些不能识别BOM头,比如PHP就不能识别...
  • esonbest1234
  • esonbest1234
  • 2016年02月24日 11:39
  • 5263
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:去掉utf8 bom
举报原因:
原因补充:

(最多只允许输入30个字)