文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>utf-8签名与不签名的区别

utf-8签名与不签名的区别

时间:2010-10-25  来源:[曾恩]

 

最近开发的过程中碰到一个很郁闷的问题,一个站点中即有.aspx页面,也有.shtml页面,它们都引用一个公共的头文件,例:<!--#include file="Html/header.htm"-->,这时问题来了。

1> .aspx、.shtml、header.htm页面都采用utf-8带签名编码,此时.aspx页面正常,.shtml页面顶部多出一片空白部分

2> .aspx、.shtml页面采用utf-8带签名编码,header.htm采用utf-8不带签名编码,此时.shtml页面正常,.aspx页面出现乱码

3> .aspx、.shtml、header.htm页面采用utf-8不带签名编码,web.config中设置网站编码为utf-8(此项很重要,如果不配置,会出现乱码),此时一切正常

 

说到这儿,也许大家认为按照第三种方式问题就解决了,其实不然,大家知道,VS的默认编码是UTF-8带签名的,之所以采用这种编码自然是有它的好处的,文章最开始已经对签名与不签名的区别进行描述了,显而易见,带签名编码是主流。

 

最后总结:到底是什么原因导致带签名的.shtml引用一个带签名的html头文件时会出现上面多出一段空白的现象,最后发现问题之所在,IIS中解析.shtml的DLL为C:\WINDOWS\system32\inetsrv\ssinc.dll,而解析.aspx的DLL为C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,由于两个DLL在解析utf-8带签名编码文件时的差异,导致了上面问题的出现。

 

如果碰到上述问题怎么解决呢?两种解决方案,第一:弄两个头部引用文件(编码分别为utf-8及utf-8带签名),分别应用于.ASPX(utf-8带签名)及.SHTML(UTF-8);第二:将所有页面均使用.aspx后缀。

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载