关于UTF-8 BOM
这个BLOG模板用了很久了,一直都没有异常。这几天迁移服务器后突然出现问题,页面错位,顶部莫名出现一个空行。
一直改页面,改样式,折腾了两小时,还是没有搞定。一直都找不到空格从哪里冒出来的。
忍不住上网搜索了一下。原来是UTF-8 BOM 搞的鬼。
一直都没有认真关注,原来UTF-8 编码的文件可以分为no BOM 和 BOM两种格式
UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支持UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别。BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。
原来的服务器与现在服务器使用的PHP版本不同,PHP5这个变态没有对这种文件做特别处理,所以就会产生输出,就让网页多了一行。
所以,解决的方法就是保存文件时选择 UTF-8no BOM 格式。
如Adobe Dreamweaver CS3,另存为时 去掉 包括 Unicode 签名(BOM)(S) 前的勾选。
先还以为的样式表有问题,折腾。
这个问题也是造成VS里乱码的元凶。