GAE UTF-8编码网页错位问题的解决

今天为博客增加Witget,稍微修改了一下模板,随后发现网站出现错位(正常是居中的,变靠左了),马上回滚修改重新上传,错位依旧,于是Google一下,大部分人都说是因为头部没有添加

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

可是我很确定代码是有写的,而且用IE查看源代码也是有这句的,看来只能靠自己去寻找解决问题了

用IE8的[F12]工具发现,错位的原因是“<!DOCTYPE”的内容被解析到<body>里面去了

查看源代码又正常,这是什么原因呢?

经过不断的抓包发现,网页最前端有1个字节大的位置东西,肉眼无法分辨,忽然想到这是UTF-8的BOM信息,IE没有把它过滤掉,直接放在一起解析了,导致出现解析混乱

最后把文件保存为UTF-8(无签名),上传,问题解决

大部分编辑器默认保存的UTF-8文件都是带签名的,要注意保存时的高级选项选择