很久以前,在我第一次使用 utf-8 编码做网站时,就遇到过 IE 下莫名其妙的空出一行(FireFox 下无问题),肉眼看不见,也就是 UTF-8 BOM 签名了,更多 BOM 知识请查找“Unicode BOM”。
先讲讲我的项目架构,IIS + .net 2.0 + SSI
暂且不讨论为什么要用 SSI,而不用其它技术(如 UserControl)
生成 index.shtml 肯定要带 BOM,其实带不带也不会影响页面上会出现空白行。
index.shtml 内容如下:
< html>
< body>
< !--#include file="head.shtml"-->
< /body>
< /html>
1、head.shtml 保存为 UTF-8 带 BOM 时,会出现空白行(页面元素当然不止这些)。
2、head.shtml 保存为 UTF-8 不带 BOM 时,会出现乱码,因为 SSInc.dll 加载这个文件时,不知道文件的编码(因为没有 BOM 签名),因此会按 GBK 来加载文件,最后乱码。。。
所以,正也不行,反也不行,只有最后一招了,也是迫不得已。。
改 index.shtml 为:
< html>
< body>
< !--<!--#include file="head.shtml"-->
< /body>
< /html>
在 head.shtml 的页开头加上
<!--BOM-->
内容。。。。。
意图 将 <!--#include 前的 <!-- 和 head.shtml 里的 BOM--> 用HTML注释掉,在 asp 下应该没有问题。
2年前,用 asp.net include 就发现一个问题,就是它的解释方法和 asp 完全不同,不信可以试试
< !--<!--#include file="head.shtml"-->执行结果等效于
< !--#include file="head.shtml"-->
又试了半个小时,几近绝望,被 IE 这个小小的问题折磨。一阵乱试后发现
< !--#<!--#include file="head.shtml"-->
被忽略,暂时这样吧,期待更好的解决方案。。
|
||||
| · 首届中国IT工程师生态.. · 思科全球CEO钱伯斯第七.. · 北漂技术人90天求职纪实 · 2007年互联网大会 · 龙芯要做中国的“奔腾” · IPv6协议--拓展网络无.. · 国际文档格式标准开战 · 微软出价446亿美元收购.. |
· 贝恩资本携手华为22亿.. · Linux——从菜鸟到高手 · SOA 面向服务架构 · 2008年4月全国计算机等.. · 微软Forefront企业安全.. · 技术人求职简历完备手册 · 勇闯IT培训黑色围城 · 隐私保护技术探讨 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · SQL Server入门到精通 · 病毒查杀专题 |
· 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux防火墙 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · ADSL应用面面俱到 · 入侵防护系统(IPS)初探 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · iSCSI应用与发展 · RAID——磁盘阵列基础 · 病毒查杀专题 |
· 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 · PHP开发应用手册 · 中间件应用技术专题 |
|||