2006年2月23日星期四

解决Blogger发布后的帖子白板问题

前段时间偶然发现使用IE会出现一些使用Blogger发布到自己FTP上的帖子网页打开后是“白板”的问题,一直没有放在心上,因为Firefox很合我的胃口~
今天才看到了关于Metadata的知识,了解了解决方案,我也发现一些朋友的Blogger也有这样的问题,和Blogger们分享一下。

UTF-8网页空白,在网页中加上metadata标识后,还需要手动调整编码為 utf-8 才能正常显示

如果使用的是Mozilla、Mozilla Firefox、Sarafi等其他目前流行的浏览器,通常就不会有这样的问题。

在网页的meta中指定用UTF-8:
< equiv="Content-Type" content="text/html; charset=UTF-8" />

在< head>< /head>之前,把"Content-Type"放在最前面,便可以解決这样的问题了。

原因:

IE 解析网页编码时是 HTML 內的标识优先的,然后是 HTTP header ;而mozilla 系列的浏览器刚刚好相反。

一般情况在,很多人是把< title>< /title>排在最前面,并且在title中就出现了UTF-8中文,这样, IE在解析时,就先遇到UTF-8,不往下解析了,因此必须把如果把meta放在UTF-8出现之前,这样IE才能判断这个网页是以UTF-8编码的。

总之:
无论是 PHP、JSP、ASP 或其他动态网页的脚本语言,如果需要作编码设定,最好放在最前面。

引用地址在此

问题解决,刚刚重新发布了自己的Blog,好麻烦~
建议Blogger还是把模版的默认设置改改吧。

另外要说明一下,上文针对的标记只是针对一般的网页制作,如果修改Blogger模板,会发现Blogger模板设置种根本不存在以上所述的标记。修改方法如下:

在BLOGGER里,转到模板界面。
将<$BlogMetaData$>提前到< title><$BlogPageTitle$>< /title>前面。
这样就可以让IE先解析UTF-8的页面信息,而不去傻傻得先猜测<$BlogPageTitle$>里面的中文字符串的编码方式。
这个问题,也只会出现在IE6+中文BLOG名称上。
此说明来自LemonHall对本文的评论。特表感谢。

PS:为防止Blog发布失败,我在HTML标记中加了多余的空格,应用时需要删除。