今天在CSDN看到一个php输出空白隐形字符65279的问题,在网上找了下,发下这个65279字符是php用来标记文件是utf-8编码的,输出的时候会一起输出到客户端,导致客户端如果使用ajax得到返回值时,无法匹配字符串。

php隐形字符65279解释如下:

UTF-8 编码的文件可以分为无 BOM 和 BOM 两种格式。

何谓BOM?

  "EF BB BF" 这三个字节就叫BOM,全称是"Byte Order Mard"。在utf8文件中常用BOM来表明这个文件是UTF-8文件,而BOM的本意是在utf16中用。

  utf-8文件在php中输出的时候bom是会被输出的,所以要在php中使用utf-8,必须要是使用不带bom头的utf-8文件。

  常用的文本编辑软件对utf-8文件保存的支持方式并不一样,使用的时候要特别留意。

例如:

1、使用ultraedit时,另存时会有“UTF-8”和“UTF-8 - 无BOM”两种选择。
2、 window的记事本保存的是带bom的。
3、EditPlus软件不同版本对utf-8的保存支持不一样,例如:2.31版本保存的是不带bom的,2.11版本保存的是带bom的。

把utf-8文件头去掉的办法:

1、使用ultraedit另存,选择“UTF-8 - 无BOM”
2、一个很有用的php程序,放在站点根目录下运行,会把目录下全部utf-8文件的bom头去掉,代码如下:
?
        
//remove the utf-8 boms 
//by magicbug at gmail dot com 
   
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); 
}

转载 解决 #65279 隐形字符的问题相关推荐

  1. php隐形字符#65279;

    php隐形字符&#65279解释如下: UTF-8 编码的文件可以分为无 BOM 和 BOM 两种格式. 何谓BOM? "EF BB BF" 这三个字节就叫BOM,全称是& ...

  2. 在php中使用mb_substr($row['title'],0,15,'utf-8')解决获取的字符后面几们的乱码问题

    在php中使用mb_substr($row['title'],0,15,'utf-8')解决获取的字符后面几们的乱码问题. 要让自己在php方面有所造就,就得自己写实例,做项目.只有这样才能遇到问题, ...

  3. 解决html连续字符或数字换行的问题

    解决html连续字符或数字换行的问题 参考文章: (1)解决html连续字符或数字换行的问题 (2)https://www.cnblogs.com/plBlog/p/11428177.html 备忘一 ...

  4. python sub 不区分大小写_解决Python列表字符不区分大小写的问题

    有时候,我们需要检测一个元素是否已经存在列表中,并且不区分大小写,如:列表已有元素Mary,那我们想认为MARY也已经被占用.这个例子在实际编程中会用到很多,比如保证网站注册用户独一无二.邮件姓名独一 ...

  5. oracle的em能干什么,转载 解决Oracle的EM登录

    转载 解决Oracle的EM登录 (2011-03-13 20:53:39) 标签: 杂谈 这几天解决了EM无法登录的问题,顺便也把j数据库程序中常出现的ORA_12518错误解决了,有必要总结一下, ...

  6. php 入库乱码,解决php 中文字符入库或显示乱码的简单示例

    这篇文章主要为大家详细介绍了解决php 中文字符入库或显示乱码的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧!大家以后在编写过程中, 一定 ...

  7. JavaScript奇技淫巧:隐形字符

    JavaScript奇技淫巧:隐形字符 本文,分享一种奇特的JS编程技巧,功能是:可以使字符串"隐形".不可见! 效果展示 如下图所示,一个字符串经物别的操作之后,其长度有621字 ...

  8. [转载] 解决No module named xxx 问题

    [转载] 解决No module named xxx 问题 作者:hustqb 文章:解决No module named ***问题 链接:https://blog.csdn.net/hustqb/a ...

  9. [转载]Word通配字符

    [转载]Word通配字符 本文转自:https://www.cnblogs.com/pugongying123/p/8327674.html Word查找栏代码·通配符一览表 序号 清除使用通配符复选 ...

最新文章

  1. js的parseInt() map(),reduce()方法详解
  2. abap 在table control(表控件) 实现查找功能
  3. pl/sql中文显示为乱码解决
  4. 男朋友出的性格测试题
  5. 递归存储过程中使用cursor
  6. 微软反向 RDP 漏洞补丁不当,第三方 RDP 客户端易受攻击
  7. python3基础知识复习 -- 进程,线程,多任务讲解
  8. 计算机网络cs144之lab0
  9. EMM并不繁琐 ZBOX一体机轻松完成部署管理
  10. windowsMobile 注册表136个操作
  11. Linux系统下操作的常用快捷键
  12. Egret 使用Texture Merger制作美术字体
  13. Java 开源中文分词器Ansj 学习教程
  14. 突变检测软件 测试数据库,突变测试—通过一个简单的例子快速学习这种有趣的测试技术...
  15. Rust 常用 trait 实现
  16. P2P(1)P2P下载
  17. 【CCTC 2017】云计算核心技术与实践专场:剖析云计算关键技术,探寻金融、气象行业转型升级之路...
  18. 客户端开屏广告适配的一点经验
  19. verilog设计一个分,秒定时器电路:输入时钟1KHZ进行分秒计数
  20. linux常用命令——文件夹操作

热门文章

  1. 关于 chrome 谷歌浏览器 最小化后 页面被限制,不能运行的解决方案
  2. 应用 - gensim如何得到word2vec词向量
  3. 【射影几何03】中心射影和透视射影
  4. 电商系统延时任务机制源码分享
  5. CoreDNS:Kubernetes内部域名解析原理、弊端及优化方式
  6. ZYNQ学习笔记_GPIO之输入输出
  7. Launch screens may not set custom classnames
  8. [magick/magick_libMagickCore_la-animate.lo] Error 解决方案
  9. Java NIO框架
  10. 【K8S运维知识汇总】第4天7: dashboard小彩蛋–heapster