标签归档:bom

DEDECMS引入外部模版文件出现””字符导致异常空行问题

问题描述

index.htm模版中采用{dede:include filename=’head.htm’/}插入其他模板文件,就出现空行,审查元素发现有两个双引号字符,而查看页面源代码没有任何异常,如图。另外,将head.htm中的代码直接复制到index.htm中就没有问题。

bom_bug

 

问题原因

百思不得其解,突然记起曾手贱用带BOM的格式保存了head.htm文件。(原本是GBK的文件,转了下码)

解决办法

用nodepad之类的编辑器转为无BOM格式保存即可。

bom_save

 

科普时间

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

何谓BOM?

字节顺序标记英语:byte-order mark,BOM)是位于码点U+FEFF统一码字符的名称。当以UTF-16UTF-32来将UCS/统一码字符所组成的字符串编码时,这个字符被用来标示其字节序。它常被用来当做标示文件是以UTF-8UTF-16UTF-32编码的记号。

因为 Web 服务器软件可能不认识 BOM,所以就把 BOM 的两个特殊字节当做字符发送给浏览器了。

另外微软的记事本,Word 等只能正确打开含BOM的UTF8文件。