`

去掉&#65279隐藏字符解决办法

阅读更多

【前言】

    本文介绍个去掉&#65279隐藏字符的解决办法

 

【主体】

   PHP项目部署到服务器上后,有时会出现html模板自动加载空行的情况,而且<head>标签被移到了body中去。这个问题刚开始的时候知道是编辑器的问题,所以尝试编辑器转换成utf-8无BOM形式。但网上找的很多编辑器,下载了五六款尝试了下都无法实现。后来试着脚本文件去除,不过存在缺陷。所以将两种方法结合在了一起。

  (原因):是utf-8用记事本编辑代码保存的错误,使代码在保存的时候带上了BOM。

最好写代码的时候用编译器编写,不要用记事本编写代码。

  (方案):用脚本文件搜索出哪个文件存在问题,然后用编辑器转换,针对性解决问题

 

【方案】

(1)将下面代码保存为a.php文件放到根目录下,执行一下,即可打印出哪个文件出了问题。

<?php 
// 设定你要清除BOM的根目录(会自动扫描所有子目录和文件)
$HOME = dirname(__FILE__);
// 如果是Windows系统,修改为:$WIN = 1;
$WIN = 0;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>UTF8 BOM 清除器</title>
<style>
body { font-size: 10px; font-family: Arial, Helvetica, sans-serif; background: #FFF; color: #000; }
.FOUND { color: #F30; font-size: 14px; font-weight: bold; }
</style>
</head>
<body>
<?php
$BOMBED = array();
RecursiveFolder($HOME);
echo '<h2>These files had UTF8 BOM, but i cleaned them:</h2><p class="FOUND">';
foreach ($BOMBED as $utf) { echo $utf ."<br />\n"; }
echo '</p>';
// 递归扫描
function RecursiveFolder($sHOME) {
 global $BOMBED, $WIN;
 $win32 = ($WIN == 1) ? "\\" : "/";
 $folder = dir($sHOME);
 $foundfolders = array();
 while ($file = $folder->read()) {
  if($file != "." and $file != "..") {
   if(filetype($sHOME . $win32 . $file) == "dir"){
    $foundfolders[count($foundfolders)] = $sHOME . $win32 . $file;
   } else {
    $content = file_get_contents($sHOME . $win32 . $file);
    $BOM = SearchBOM($content);
    if ($BOM) {
     $BOMBED[count($BOMBED)] = $sHOME . $win32 . $file;
     // 移出BOM信息
     $content = substr($content,3);
     // 写回到原始文件
     file_put_contents($sHOME . $win32 . $file, $content);
    }
   }
  }
 }
 $folder->close();
 if(count($foundfolders) > 0) {
  foreach ($foundfolders as $folder) {
   RecursiveFolder($folder, $win32);
  }
 }
}
// 搜索当前文件是否有BOM
function SearchBOM($string) { 
  if(substr($string,0,3) == pack("CCC",0xef,0xbb,0xbf)) return true;
  return false; 
}
?>
</body>
</html>

 

(2)接下来按照页面输出的提示去转换格式

   点击下面的网址下载一个UltraEdit

   http://dlsw.baidu.com/sw-search-sp/soft/41/10554/ue_chinese_V22.10.0.12_setup.1436351778.exe

   具体操作:

   打开UltraEdit,在UltraEdit里打开带隐藏字符&#65279的文件,然后另存为,窗口最下面最左边有一个选项,显示默认,打开下拉条选择utf-8无BOM,然后回车,去你保存的文件位置找到,拖拽到项目里,ok 完成。



 

 

 

 

 

 

 

 

 

.

  • 大小: 105.6 KB
分享到:
评论

相关推荐

    cadence生成网络表时出现如下错误解决办法.

    解决办法是只写关键元件名,例如A2541P10_HDR2X5-100MIL_2X5 HEADER更改为A2541P10_HDR2X5-100MIL_2X5 HEADER,去除中间的空格。 三、Error Illegal character "Dot(.)" found in "PCB Footprint"错误 这是一个...

    弹出网页或不定时弹出网页的解决办法.docx

    解决方法是:打开注册表编辑器,找到 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogon 主键,然后在右边窗口中找到 LegalNoticeCaption 和 LegalNoticeText 两个字符串,删除这两个字符串就可以...

    Word中空格显示小点的办法.docx

    解决这个问题的方法主要是通过调整Word的显示设置来隐藏这些格式标记。下面分别介绍针对不同Word版本的具体步骤: ### Word 2021版本 1. **通过菜单栏调整** - 打开Word文档。 - 点击菜单栏中的“工具—&gt;选项”,...

    关于获取DIV内部内容报错的原因分析及解决办法

    本文将深入探讨这些原因,并提供相应的解决办法。 ### 错误描述 在尝试获取`div`元素(例如`#divStyle`)内部内容时,开发者可能使用`html()`方法,如`var divContent = $("#divStyle").html();`。当期望内容为空...

    Excel问题集合

    #### 四十六、n2=sum(b2到m2)、n3=sum(b3到m3)、有没有办法让n那一列可以自动填充 可以使用自动填充功能或使用数组公式来实现。 #### 四十七、在工作表里有连续10行数据,现在要每行间格2行,要如何做 可以通过插入...

    Linux常见问题分析(pdf文档)

    - **解决方案**: - 使用`free -h`来更直观地查看内存使用情况。 - 如果担心内存不足,可以通过调整内核参数来减少缓存占用,但这通常不推荐。 #### 2. 如何查看网卡连接状态和速度? - **问题描述**:网卡标称...

    Word高手常用技巧

    解决办法是在前引号前加入一个“无宽分隔符”,即U+2060,这将保持引号的正确方向。 #### 批量转换全角半角字符 全选文档后,通过“格式”菜单下的“更改大小写”功能,选择“半角”,一键转换所有全角字符为半角...

    chinaunix_linux_20040630

    - **解决办法**:确保文件名编码正确,并设置`xmms`的字符编码配置。 以上是对文档中提及的知识点的详细介绍。这些技巧对于Linux初学者来说非常实用,可以帮助他们更好地理解和掌握Linux操作系统的基本操作和维护...

    UniGUI集合说明

    - **隐藏标题文本**:通过设置窗体的`Caption`为空字符串。 #### 13. 用ExtEvent打开链接和下载文件 在UniGUI中,使用ExtEvent打开链接或下载文件的操作可以通过客户端脚本来完成: - **打开链接**:通过...

    UniGUI集合说明--追月无名.pdf

    - **配置连接字符串**:设置正确的数据库连接字符串。 - **编写查询语句**:使用ADO组件执行SQL查询。 #### 9. MainModule怎样得到 js变量的值 在UniGUI中,`MainModule`可以通过以下方式获取JavaScript变量的值:...

    C#编程经验技巧宝典

    85 &lt;br&gt;0131 巧截字符串的数字 86 &lt;br&gt;0132 如何存储变长字符串 86 &lt;br&gt;0133 在进行字符串比较时忽略大小写 87 &lt;br&gt;0134 如何去除字符串尾空格 87 &lt;br&gt;0135 如何去掉字符串中所有空格 ...

    SendTo+

    已知问题,当文件名含有 & | 等特殊字符时可能会操作失败,原因是发送到传递给脚本的参数默认是不加引号的会造成解析参数错误,对付的办法是更改文件名去掉特殊字符或在文件名中添加空格,除此没有彻底解决的办法。...

    EcShop开发案例整理

    56.缩略图、商品图片模糊及加水印图片变模糊的解决办法:涉及到图片处理和优化的策略,可能包括调整图片压缩算法和分辨率。 57.发货查询加入收货人、地址、时间、配送方式:修改模板文件,加入这些信息的输入和展示...

    grub4dos-V0.4.6a-2017-02-04更新

    背景色最好为白色或黑色,这样可以去除一些灰色杂波。若是彩色背景,则应当非常干净。 提醒:请以16进制方式输入。否则易错。 延迟[delay]:序列图像之间的延迟。单位是滴答,即1/18.2秒。 序列数[last_num]:...

    Maximo EAM平台开发笔记2

    **2.33 配置数据库时报“首选项不存在:GLOBAL_LEXER”错误处理办法** - **解决方法**: 1. 检查数据库配置文件中的首选项设置。 2. 确认全局词法分析器(GLOBAL_LEXER)是否被正确配置。 **2.34 在MAX7版本上修改...

    Excel百宝箱9.0无限制破解版.rar

    【错误代码查询】:查询VBA错误ID号对应的原因及解决办法 【VBA窗体帮助信息查询】:窗体相关的VBA帮助查询,包括事件、方法、属性、对象、集合与控件 【函数运算符符语法查询】:VBA函数以及运算符相关的帮助查询 ...

Global site tag (gtag.js) - Google Analytics