K9 通用版 博客版 主题版 地方门户版 企业版 |   企业(ASP) 分类 使用 分享 疑问 模板 建议 帮助 错误 其他
+新建主题 [Ajax]
填写帐号密码即可完成注册

辨别UTF-8模板文件是否带Unicode签名BOM(Byte Order Mark)

KingCMS官方网站 | Gougliang | 产品介绍栏 | 阅读(17437) | 2011-04-28
如果你的地方门户网站最上面出现一条白条,如下:


(虽然不影响使用,但是十分影响美观),那么很有可能是你用了Windows自带的记事本修改了模板文件。

首先引用一段非常专业的话:“BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF BB BF。这个标记是可选的,因为UTF8字节没有顺序,所以它可以被用来检测一个字节流是否是UTF-8编码的。微软做这种检测,但有些软件不做这种检测,而把它当作正常字符处理。

微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记。”

可能微软垄断习以为常了,可现在Linux+PHP太普及了,所以之前微软不规范的东西现在就要注意使用了,不然的话,就影响到实际使用。

KingCMS地方门户的UTF-8编码模板是不带BOM的,如果使用记事本编辑过的话,就会带上BOM,影响使用的。

使用Emeditor辨别UTF-8模板是否带BOM:

用Emeditor打开模板文件,查看右下角的标记。

没有签名,则表示是不带BOM。

带有签名,则表示是带BOM。

解决方法也很简单,只要把带有签名的另存为,不带签名的即可:

即是“添加一个Unicode签名(BOM)”不打上勾。

使用Notepad++辨别UTF-8模板是否带BOM:

同样,用Notepad++打开UTF-8模板,看右下角。


如果只是显示UTF-8,就表示带BOM。


如果显示的是ANSI as UTF-8,就表示不带BOM。

Notepad++转换也是非常方便和强大的:


选上“以UTF-8无BOM格式编码”,再保存即可。

使用Dreamweaver辨别UTF-8模板是否带BOM:

用dw打开模板文件之后,选择"修改"菜单,如下图(以dw8为例):



如果“包括Unicode签名(BOM)”就说明是带BOM的,去掉这个打勾,再点击确定,就能转成不带BOM的模板文件了。

本文用了三种常见的编辑工具辨别模板文件是否带BOM,相信能轻松解决KingCMS地方门户网站用记事本编辑后出现白条的问题了。用以上任意一种工具,打开你曾经修改的模板文件,转换成不带BOM的就行了。

查看评论[查看全部评论]

ctenten (05-27 17:21)
实用
user9981 (05-03 12:00)
ok
user9981 (05-03 12:00)
Reply: 10楼
ok
183.11.244.* (05-02 11:24)
应该是WINDOWS按照Unicode标准来吧,为什么WINDOWS躺着也中箭。
caozhi (12-06 08:57)
比较有用的

博文分类

KingCMS公告栏 K9更新日志 需求调用及运营 开发及问题解答 产品介绍栏 工具/云推荐 媒体报道 杂谈其他

根据月份归类

2016-12 2016-11 2016-10 2016-09
KingCMS 内容管理系统

关于我们 联系我们 广告报价 付款方式 站点导航

Copyright © 2004-2015 Focuznet All rights reserved.

广州唯众网络科技有限公司 粤ICP备08008106号