<?php
if (isset($_GET['dir'])){ //config the basedir
$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);
}
?>
分享到:
相关推荐
3. 如果需要读取有BOM的UTF-8文件并转换为其他编码,可以先去除BOM,然后再进行转换: ```csharp using (FileStream fileStream = new FileStream("带有BOM的UTF8File.txt", FileMode.Open)) { byte[] bom = new ...
然而,UTF-8有一个特殊特性,那就是它可以带有Byte Order Mark(BOM),这是一个特殊的字节序列,用于标识数据的编码方式。在某些情况下,BOM可能会引起问题,例如在读取文本文件时,可能会导致额外的乱码字符出现在...
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。 Windows就是使用BOM来...
描述中提到的博文链接指向了一个ITEYE博客文章,虽然具体内容没有给出,但我们可以推测该文章可能提供了如何批量去除UTF-8文件BOM的教程或代码示例。ITEYE是一个知名的IT技术社区,这里的技术分享往往具有很高的参考...
然后用 GB2UTF81.exe 这个工具批量去掉BOM(源文件格式选 utf8,目标文件也选utf8,去掉 带BOM 的勾,不保留备份,再点 开始处理 即可)。然后把目录复制,覆盖原来的目录文件即可。 注意: 本工具暂时还不支持清除...
去除bom头小工具,工具使用方法: 选择要遍历的文件夹,输入...勾选ANSI转为UTF-8,则会将相应格式但编码为GB2312,GBK,GB18030的文件转为无BOM的UTF-8文件 请确保文件可写!使用前请做好备份,作者不承担任何法律责任
2. **手动去除BOM**:你可以使用文本编辑器,如Notepad++或Sublime Text,打开UTF-8带BOM的文件,选择“编码”菜单,然后选择“转换为UTF-8无BOM”或类似选项。这样会保存一个新的文件,而原文件保持不变。 3. **...
然而,UTF-8有三种形式:无BOM(Byte Order Mark)、带BOM的UTF-8(UTF-8 with BOM)和UTF-8签名。带BOM的UTF-8文件会在文件开头添加一个特殊字节序列(EF BB BF),用来标识文件是用UTF-8编码的,但在某些情况下,...
例如,"phonebook_export_unicode_L.csv"可能是使用UTF16LE编码的电话簿数据,而"phonebook_export_utf8.csv"和"phonebook_export_utf8_noBOM.csv"则是使用UTF8编码的,后者没有BOM。 在实际应用中,例如在跨平台的...
标题 "php utf-8编码去bom小工具" 指的是一个PHP脚本,用于去除UTF-8编码文件中的BOM(Byte Order Mark)。BOM是UTF-8编码的一个可选特征,它在文件开头放置三个特殊的字节来标识文件的字符编码,但这可能会导致在...
"去除BOM头小工具.exe"是一个实用程序,专门用于批量处理UTF-8编码的文件,移除文件头的BOM标记。这个工具可以极大地提高工作效率,避免手动逐个编辑文件的繁琐过程。在日常开发中,如果你遇到因为BOM导致的问题,...
`Go-utfbom`项目就是针对这种情况,提供了一个便捷的工具来检测和移除UTF-8文件开头的BOM。 标题"Go-utfbom检测BOM并根据需要移除"意味着这个库专注于处理与UTF-8 BOM相关的任务。在Go开发中,如果你的工作涉及到...
因此,有时候我们需要去除UTF-8文件的BOM头。 "UTF-8去BOM头工具"就是为了解决这个问题而设计的。这个工具整合了之前的去BOM工具和所需的DLL(动态链接库)文件,使得用户可以方便地处理含有BOM头的UTF-8文件。DLL...
在C#中,我们可以通过以下步骤来读取并去除UTF-8文件的BOM头: 1. 使用`File.OpenRead`方法打开文件,获取一个`FileStream`对象。 2. 创建一个`BinaryReader`对象,指定编码为`Encoding.UTF8`。`BinaryReader`会...
虽然UTF-8无BOM是更常见的选择,但IDEA也允许创建带BOM的UTF-8文件。 3. **保存文件**:在保存文件时,可以通过设置选择是否添加BOM。这在与不支持BOM的系统交互时尤其有用。 4. **版本控制**:如果使用Git等版本...
对于使用UTF-8编码的文本文件,特别是编程源代码,通常推荐使用无BOM版本,以防止可能出现的解析问题。而这个批量去除BOM工具无疑是一个实用的辅助工具,可以帮助开发者轻松解决由BOM引发的困扰。
在处理文本数据时,`EasyTcpServer`可能会自动识别并去除BOM,以便正确解析和处理含有BOM的UTF-8字符串,防止出现乱码问题。这种处理方式对于接收来自不同系统或工具的数据尤为关键,因为并非所有系统都会在发送UTF-...
本工具用于批量去除UTF-8中的BOM标记,批量操作非常省时省力,再不用一个个文件去删除了默认类型为php|html|js|css,多类型可使用|分隔符进行分隔,支持将ANSI文件转为UTF8,建议在去除BOM文件头时,请先做好备份。
去除文件中的BOM头信息. 一些文档工具可以打开再保存为无bom格式,但文件太多就很费力,此工具类可以直接运行,直接输入你要修改的文件夹路径即可,可自由调整文件夹深度,进行子级文件夹读取
VS201X编辑UTF-8编码的HTML文件时,总会在头部添加0xEF, 0xBB, 0xBF 三字节的BOM符,影响了HTML的正常解析,可以使用Fix File Encoding插件将其去除。