最近在写html时,发现某个页面的顶部总是有一行内容为的空白,导致顶部留下空行,原来发现是windows环境下的BOM导致的。用非记事本的高级编辑器修改下编码,重新保持即可解决问题。
简单来说就是在用类似windows自带的记事本等软件时,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM),用来表示这个文件的编码格式,但是偏偏php不会自动忽略BOM,所以才会造成页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部。
无独有偶,昨天在做微信开发接入测试的验证服务器有效性时,总是验证失败,提示token check faild,调试发现是我的接口返回值的头部有一行空白,第一反应就是“这不是BOM么”,立马把所有的文件格式重新用UTF-8 without BOM格式保存了一边,发现问题没有解决…后来才发现,是在工程的配置文件(config.php)的开头有一个换行符:1
2
3换行符
....
我对php也真是醉了,不愧是最好的语言…