有時候我們會為這樣一個問題而煩惱,就是如何在asp頁面中避免支持html語法. 例如: 下面一句話 "<form><input type=text></form>這是一個表單語句" 當我們在ASP文件中用response.write"<form><input type=text></form>這是一個表單語句"輸出這句話時,結果會出現一個文本框,顯然這與我們的目的背離. 為了得到正常的輸出結果 :<form><input type=text></form>這是一個表單語句 我們要對這個字串做一下特殊處理,有3種方法可以實現: 1.直接用ASP語法server.htmlencode() rstr="<form><input type=text></form>這是一個表單語句" rstr=server.htmlencode(rstr) response.write rstr 'response語句輸出結果即可的到正確結果,但這種方法好象有可能產生亂碼.筆者曾遇到過這個頭痛的問題. 本人的主頁是放在國外的一個服務器上,用了這種方法之后,所有中文全部是亂碼,而英文卻正確,可是服務器 卻明顯說支持中文,于是想到第2種方法. 2.只對字符串中的除中文以外的字符用server.htmlencode()語法,具體語句如下: rstr="<form><input type=text></form>這是一個表單語句" temp = "" for i = 1 to len(rstr) zh = mid(rstr,i,1) if (asc(zh)>40 and asc(zh)<130) then zh=server.htmlencode(zh) '判斷字符zh是否為中文,若不是則對它用server.htmlencode() temp = temp + zh next rstr= temp response.write rstr '得到的結果非常正確,而且不會出現亂碼.但這種方法語句冗余,處理速度不快,于是有了更好的第3種方法. 3.這是一種特殊的方法,可以說思路很巧妙.我們都知道html標記都是以"<" ">"組合而成,因此只要對這兩個特殊字符做特殊處理即可,即把"<" 用"<",">"用">"代替,這樣就可避免瀏覽器支持html語法了.具體語句如下: rstr=replace(rstr,"<","<",1) rstr=replace(rstr,">",">",1) response.write rstr '這種方法簡單明了,不僅能的到正確結果,也不會有亂碼,推薦使用。
|