以开头的asp经典vBscript行//
我在一个旧的asp经典页面中发现了一行以//开头的vbScript代码,这是一个错误(用//而不是')注释一行代码 我注意到错误的注释行作为正确的注释行工作。 有人知道为什么?? 谢谢 莱昂纳多 我从那条旧代码中举了一个小例子:以开头的asp经典vBscript行//,vbscript,asp-classic,Vbscript,Asp Classic,我在一个旧的asp经典页面中发现了一行以//开头的vbScript代码,这是一个错误(用//而不是')注释一行代码 我注意到错误的注释行作为正确的注释行工作。 有人知道为什么?? 谢谢 莱昂纳多 我从那条旧代码中举了一个小例子: <% Response.Write "<u>testAsp.asp</u><hr/>" V_Password="pwd" //V_Password = Str2Hex(V_Password) Response.Write "
<%
Response.Write "<u>testAsp.asp</u><hr/>"
V_Password="pwd"
//V_Password = Str2Hex(V_Password)
Response.Write "V_Password=" + V_Password + "<br/>"
Response.Write "V_Password(hex)=""" + Str2Hex(V_Password) + """"
function Str2Hex(s)
' -- converte stringa di byte (non caratteri ascii!!) in formato esadecimale
'
' The Asc function returns the ANSI character code corresponding
' to the first letter in a string.
' The AscB function is used with byte data contained in a string.
' Instead of returning the character code for the first character,
' AscB returns the first byte.
' AscW is provided for 32-bit platforms that use Unicode characters.
' It returns the Unicode (wide) character code, thereby avoiding
' the conversion from Unicode to ANSI.
dim k, out, MultiByte
out=""
for k=1 to len(s)
'response.Write("|" & hex(ascb(Mid(s,k,1))) & "|<br>" & vbCrLf)
out=out & hex(ascb(mid(s,k,1)))
next
Str2Hex="0x" & out
'response.write(out & vbCrLf)
end function
%>
这是生成的输出:
如您所见,asp页面在vbScript中,并且还包含正确的vbScript注释…Update
因此,在您发布示例代码并确认在经典ASP环境中,代码运行时没有错误,并且表现得像注释之后,我进行了一些挖掘
但我可以确认的是,这是一个典型的ASP环境特有的。如果我尝试使用wscript.exe
作为主机而不是传统ASP来运行该示例,我会得到以下错误:
Microsoft VBScript编译错误:应为语句
我能得出的唯一结论是,支持VBScript和JScript会产生一种特殊的副作用,这意味着ASP预处理器不会导致VBScript运行时抛出编译错误
很可能这是一个从未被发现的意外,因为页面没有像运行VBScript那样强制编译错误
繁荣的原始答案 很可能经典的ASP页面设置为使用JScript而不是VBScript。这两种语言都可以作为默认的活动脚本语言使用 可能并不总是很清楚使用的是什么,因为默认情况下使用的脚本语言可以在IIS网站级别设置,而不是使用
@language
指令或
块
VBScript中的注释有两种风格,即Rem
语句和“
字符。用其中一个开始一行代码将阻止在脚本中执行该代码
REM这是一条评论
"这也是评论
回答,写“你好”
JScript中的注释也有两种风格,一种是单行注释的/
,另一种是跨多行注释的/**/
//这是一条注释
/*
这也是一个评论
*/
回复。写下(“你好”);
有用的链接