【ASP】UTF-8编码的vbscript页面,调试信息的乱码问题

在被UTF-8编码的vbscript页面,在写程序的过程中,不小心写错的话,在页面的输出信息是乱码的,如下图所示:

【ASP】UTF-8编码的vbscript页面,调试信息的乱码问题-1

让人无法得知错误的原因。

毕竟在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文件找出来,用记事本打开

【ASP】UTF-8编码的vbscript页面,调试信息的乱码问题-2
2、将这个文件另存为为utf-8编码,到你的网站的根目录,如果你没有改过IIS的默认网站一般是:C:\Inetpub\wwwroot

【ASP】UTF-8编码的vbscript页面,调试信息的乱码问题-3

3、检查一下你的网站根目录的权限状态,一般Windows2003是全开的,可以跳过此步,就怕部分版本的Windows2003抽风而已。一般在Web共享,打开为“共享文件夹”就可以了,共享的时候,授予权限默认就行。这里,无须像部分网站写的一样,要先在“共享”处整成“共享此文件夹”,在于“安全”中的IIS来宾账户授予全部权限。

【ASP】UTF-8编码的vbscript页面,调试信息的乱码问题-4

4、之后,用记事本或者notepad、Editplus等工具打开你网站根目录下的500-100.asp文件进行如下的修改:

(1)头部加上<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”65001″%>,Option Explicit后面加上一行response.charset=”utf-8″,这两行先保证报错页面的编码是UTF-8的

【ASP】UTF-8编码的vbscript页面,调试信息的乱码问题-5

(2)将Session.Codepage=936改为Session.Codepage=65001,这里保证Session的编码是UTF-8。

【ASP】UTF-8编码的vbscript页面,调试信息的乱码问题-6

(3)保存退出。

4、在控制面板中打开“管理工具”中的IIS管理器,配置你的网站的属性,设置“自定义错误”,将500;100的类型设为URL,同时URL设为/500-100.asp。保存退出即可。

【ASP】UTF-8编码的vbscript页面,调试信息的乱码问题-7

5、可以看到,如果以后你的UTF-8编码网站的出错页将会变成如下状态:

【ASP】UTF-8编码的vbscript页面,调试信息的乱码问题-8

显然,报错清晰了许多。

原文链接:,转发请注明来源落伍老站长!

发表评论