chenmoti

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

BOM——Byte Order Mark,就是字节序标记

 

  • 在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE“的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。
  • UCS规范建议我们在传输字节流前,先传输 字符”ZERO WIDTH NO-BREAK SPACE“。
  • 如果接收者收到FEFF,就表明这个字节流是大字节序的;如果收到FFFE,就表明这个字节流是小字节序的。因此字符”ZERO WIDTH NO-BREAK SPACE“又被称作BOM。
  • PHP在设计时就没有考虑BOM的问题,也就是说他不会忽略UTF-8编码的文件开头BOM的那三个字符。
  • 受COOKIE送出机制的限制,在这些文件开头已经有BOM的文件中,COOKIE无法送出(因为在COOKIE送出前PHP已经送出了文件头),也就是说,凡是不能够在执行之前进行输出的代码都将无效

   所以文件保存为不带BOM的UTF-8文件

 

posted on 2019-12-31 16:44  chenmoti  阅读(241)  评论(0)    收藏  举报