1. 程式人生 > >【ASP】UTF-8編碼的vbscript頁面,除錯資訊的亂碼問題

【ASP】UTF-8編碼的vbscript頁面,除錯資訊的亂碼問題

在被UTF-8編碼的vbscript頁面,在寫程式的過程中,不小心寫錯的話,在頁面的輸出資訊是亂碼的,如下圖所示:


讓人無法得知錯誤的原因。

畢竟在vbscript最初發展的時候,UTF-8編碼還沒有普及,都是預設以伺服器系統的預設編碼來跑網頁,這與現在網頁皆用UTF-8是相矛盾的。

雖然,現在ASP的市場佔用率幾乎變得沒有了,之前普遍用ASP.NET都經過一番大幅度的程式碼修改升級成ASP.NET了,但是你還是要知道怎麼解決問題。

網上流行的方法,是每次都要修改這個出錯頁面的編碼,或者引入一種Try-catch語句來自己處理異常,這太麻煩了,誰知道我寫程式的時候,又會什麼時候寫錯呢?

正確方法是改變iis中asp錯誤資訊輸出預設編碼。具體如下:

1、將C:\WINDOWS\Help\iisHelp\common\500-100.asp找到,你也可以直接用系統的搜尋功能將這個500-100.asp檔案找出來,用記事本開啟


2、將這個檔案另存為為utf-8編碼,到你的網站的根目錄,如果你沒有改過IIS的預設網站一般是:C:\Inetpub\wwwroot

3、檢查一下你的網站根目錄的許可權狀態,一般Windows2003是全開的,可以跳過此步,就怕部分版本的Windows2003抽風而已。一般在Web共享,開啟為“共享資料夾”就可以了,共享的時候,授予許可權預設就行。這裡,無須像部分網站寫的一樣,要先在“共享”處整成“共享此資料夾”,在於“安全”中的IIS來賓賬戶授予全部許可權。


4、之後,用記事本或者notepad、Editplus等工具開啟你網站根目錄下的500-100.asp檔案進行如下的修改:

(1)頭部加上<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>,Option Explicit後面加上一行response.charset="utf-8",這兩行先保證報錯頁面的編碼是UTF-8的


(2)將Session.Codepage=936改為Session.Codepage=65001,這裡保證Session的編碼是UTF-8。


(3)儲存退出。

4、在控制面板中開啟“管理工具”中的IIS管理器,配置你的網站的屬性,設定“自定義錯誤”,將500;100的型別設為URL,同時URL設為/500-100.asp。儲存退出即可。


5、可以看到,如果以後你的UTF-8編碼網站的出錯頁將會變成如下狀態:


顯然,報錯清晰了許多。