当aspx文件以HTML形式显示时,本应该就是一些字符串,例如如果保存了一个没有任何内容的空aspx文件,其HTML代码的第一行是<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default" %>如果用字节形式表示,数值依次为60、37、64、32......但是当我生成一个2005版的空aspx文件后,尽管其HTML代码看上去还是标准的字符串,但是却隐藏了其它的东西,同样是上面那第一句,再用字节形式表示,就变成了239、187、191、60、37、64、32......
开始处并没有多出任何字符,却多出了239、187、191这三个隐含字节。不止如此,如果把这个aspx文件用记事本打开,将全部字符串拷贝生成另外一个文件,结果是:
两个文件以文本形式看上去完全相同,以字节形式比较却很有差别,文件长度也不一样。新文件除了开头没有多出239、187、191三个字节外,在后面偏移300多字节处也与原aspx文件存在8个字节值的不同(再往后的我没时间去细查了)。用2003生成的aspx文件则没发现这种情况。我想,如果不是我的文件染了病毒,就一定是2005版的aspx文件里隐藏了什么东西。有人了解这种现象吗?

解决方案 »

  1.   

    既然HTML是以字符形式来解析的脚本文字,就根本不需要隐含什么密文编码。
    如果说aspx格式文件含有什么特殊内容,需要.Net FrameWork另行处理,那么至少也是在2005版才有的,因为2003版的aspx文件没这些特殊字节。
    这个问题并不影响使用,但是在asp.net重要应用时,如果发现了却不清楚2005版FrameWork处理aspx文件时到底在背地里干了些什么,心里总有点儿......