好,我們?cè)賮?lái)看為什么ASP/VBScript中保留了這個(gè)特性,我們知道VBScript是VB(Visual Basic)的一個(gè)子集,VB是什么,VB是做Windows應(yīng)用程序開(kāi)發(fā)的,說(shuō)到Windows應(yīng)用程序開(kāi)發(fā)那么就可能會(huì)調(diào)用到Windows系統(tǒng)的API,而這些API函數(shù)則大多是用C語(yǔ)言編寫的,很明顯為了VB能夠兼容這些API,必然字符串要引入CHR(0)字符也就是vbNullChar,同時(shí)也要有C語(yǔ)言字符串處理的特性,就是遇到CHR(0)就標(biāo)識(shí)著字符串結(jié)束,無(wú)論接下來(lái)是什么內(nèi)容,最經(jīng)典的利用CHR(0)字符的WinAPI函數(shù)調(diào)用就是GetLogicalDriveStrings ,這個(gè)API獲取的驅(qū)動(dòng)器字符串就類似于c:/<null>d:/<null><null>,每?jī)蓚€(gè)路徑之間都間隔一個(gè) null-terminated,也就是CHR(0),所以需要特殊處理,如果說(shuō)VB不支持CHR(0)字符,那么這個(gè)API就用不了了,VB的應(yīng)用程序編寫就大打折扣。不過(guò)特別的是VB的子集VBScript保留了這個(gè)特性,目前我不太清楚在VBScript腳本中Null字符是否有必要,但是這給我們腳本編寫有其是ASP帶來(lái)了一定的麻煩,甚至是安全隱患。
比如說(shuō)這樣一個(gè)函數(shù)用來(lái)取文件擴(kuò)展名:
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注