芒果小站

  1. 全球最具业界良心的主机 - DigitalOcean

    毫无疑问,目前做得最好的主机供应商

    猛击这里查看

  2. 芒果小站目前使用的主机 - DigitalOcean

    客服响应快,随时退款,XEN 架构稳定

    猛击这里查看

  3. 最好的日本东京线路主机 - DigitalOcean

    可选弗里蒙特、达拉斯、亚特兰大、纽瓦克、伦敦、东京机房

    猛击这里查看

  • 1
  • 2
  • 3
切换到精简模式
3

PHP 中的 Unicode 签名 (BOM) 问题

作者 芒果/分类 代码/发布于 2010-04-18 19:51

芒果被 WordPress 模板的怪异代码空行折腾半天。

因为 Dansion 师兄的驱使,开始 Dreamweaver 征途。不过很少有人关注到,在 Dreamweaver 中使用 utf-8 编码保存时,默认会有 “Unicode 标准化表单” 和 “包括 Unicode 签名 (BOM)” 两个选项,在页面属性里也可以看到:

如果 “包括 Unicode 签名” 选项被勾选,会产生稀奇古怪的页面渲染问题。

什么是 Unicode 签名 (BOM)?

BOM (Byte Order Mark) 是 UTF 编码方案里用于标识编码的标准标记。位于文本文件开头的 2 到 4 个字节,可将文件标识为 Unicode,还标识后面字节的字节顺序。由于 UTF-8 没有字节顺序,因此可以选择添加 UTF-8 BOM。对于 UTF-16 和 UTF-32,这是必需的。

由于这个 BOM 的存在,PHP 会误认为文本内容已经输出,因此会对页面渲染造成影响。据说 PHP6 中已经修复这个问题。

如何防止 Unicode 签名 (BOM) 对页面渲染的影响?

以 Dreamweaver 为例,保存 utf-8 编码的文档时,不勾选 “包括 Unicode 签名 (BOM)” 选项即可。

版权所有,转载请注明出处。
转载自 <a href="http://mangguo.org/php-unicode-signature-bom-problem/" title="PHP 中的 Unicode 签名 (BOM) 问题" rel="bookmark">PHP 中的 Unicode 签名 (BOM) 问题 | 芒果小站</a>
如果喜欢这篇文章,欢迎订阅芒果小站以获得最新内容。

已经有 3 条群众意见

  1. xlan /2012-05-20 05:39

    受教了,感谢芒果! 回应

    #1
  2. ?
    Vim 和 utf-8 bom 头(Byte Order Mark) | 吃货的美好时代!搜集美食、旅游、娱乐、时尚与吃货们分享 /2012-08-16 17:15

    […] 这样就安逸了。这个问题很早前也提到过,可以参阅这篇文章 PHP 中的 Unicode 签名 (BOM) 问题。 […] 回应

    #2
  3. ?
    Vim 和 utf-8 bom 头(Byte Order Mark) | wordpress主题下载|wordpress教程|wordpress 插件| wordpress主机 /2012-08-18 11:33

    […] PHP 中的 Unicode 签名 (BOM) 问题。 © 2010 芒果小站 | 固定链接 | 2 条评论 | 标签 BOM, UTF-8, Vim 芒果小站No […] 回应

    #3

下面我简单说几句