asp网站使用utf-8编码时,如果asp发生错误,显示的错误信息是乱码,需要切换浏览器浏览编码为gb2312才会显示正确的错误信息。因为IIS的错误信息输出默认使用的是gb2312编码。
有2种解决办法,让asp错误信息不显示乱码
1)自己写代码来容错,不使用IIS默认的错误代码页。(适用于无法管理IIS的用户)
-收缩VBScript
代码On Error Resume Next'在可能出错第地方增加这句后,碰到错误asp会继续执行
'....你的asp代码
If Err<>0 Then'发生错误
Response.Write Err.Description
Response.End
End If
On Error Goto 0'开启错误提示,碰到错误会调用iis的错误处理页面
2)修改网站错误页面处理页面,变为utf-8编码。(适用于能管理IIS服务器的用户)
1)打开路径,C:\WINDOWS\help\iisHelp\common,找到500-100.asp这个文件(用来显示asp错误信息的),将这个文件拷贝到你的网站根目录下。
2)用记事本打开这个文件,另存为,将存储编码改为utf-8保存。具体可以看这个:
500-100.asp修改后的代码如下
<%@ language="vbscript" codepage="65001" %>
<% Option Explicit
Session.codepage=65001
Response.Charset="utf-8"
Const lngMaxFormBytes = 200
Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP
Dim strMethod, lngPos, datNow, strQueryString, strURL
If Response.Buffer Then
Response.Clear
Response.Status = "500 Internal Server Error"
Response.ContentType = "text/html"
Response.Expires = 0
End If
Set objASPError = Server.GetLastError
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>无法显示此页</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=utf-8"><!--更改编码为utf-8-->
3)修改网站的错误处理页面,打开IIS,网站属性,自定义错误,找到500-100错误,更改如下图所示
做了这样的设置后,asp发生错误时就会显示详细错误信息,而不是乱码
留言反馈