解决IIS7下UTF-8文件提示出错信息乱码问题

     1、将C:\inetpub\custerr\zh-CN\500-100.asp文件复制到你的站点文件夹下;

  2、将这个文件修改为utf-8编码:

  a. 头部加上 @codepage=65001;

  c. 将“<META HTTP-EQUIV="Content-Type"Content="text/html;charset=gb2312">”修改为“<METAHTTP-EQUIV="Content-Type" Content="text/html;charset=utf-8">”;

  3. 配置IIS7。

  a. 打开IIS7,选择你建立的站点,在右边窗口双击“错误页”图标,选择右边属性窗口下的“添加...”操作。

  b. 添加自定义错误页窗口中,状态代码“500.100”。这里本来我想参照IIS6设置为500-100,结果系统提示不通过。
响应操作,我们这里选择“在此网站上执行URL”,URL地址“/siteName/500-100.asp”(siteName为你的虚拟站点名称),如果建立的站点,这里只要输入相对于站点根目录的URL地址。

  4. 确定后,这样站点显示的出错信息有会详细的描述了。

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <%   Option Explicit

  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"> <STYLE type="text/css">   BODY { font: 8pt/12pt verdana }   H1 { font: 13pt/15pt verdana }   H2 { font: 8pt/12pt verdana }   A:link { color: red }   A:visited { color: maroon } </STYLE> </HEAD><BODY><TABLE width=500 border=0 cellspacing=10><TR><TD>

<!--<h1>无法显示该页</h1> 您尝试访问的页面有问题,无法显示。 <hr> <p>请尝试以下操作:</p> <ul> <li>与网站管理员联系,告知对方此 URL 地址出现了此错误。</li> </ul> <h2>HTTP 500.100 - 内部服务器错误: ASP 错误。<br>Internet Information Services</h2>--> <hr> <p>技术信息(针对支持人员)</p> <ul> <li>错误类型:<br> <%   Dim bakCodepage   on error resume next ' bakCodepage = Session.Codepage ' Session.Codepage = 65001   on error goto 0   Response.Write Server.HTMLEncode(objASPError.Category)   If objASPError.ASPCode > "" Then Response.Write Server.HTMLEncode(", " & objASPError.ASPCode)     Response.Write Server.HTMLEncode(" (0x" & Hex(objASPError.Number) & ")" ) & "<br>"   If objASPError.ASPDescription > "" Then  Response.Write Server.HTMLEncode(objASPError.ASPDescription) & "<br>"   elseIf (objASPError.Description > "") Then  Response.Write Server.HTMLEncode(objASPError.Description) & "<br>"   end if   blnErrorWritten = False   ' Only show the Source if it is available and the request is from the same machine as IIS   If objASPError.Source > "" Then     strServername = LCase(Request.ServerVariables("SERVER_NAME"))     strServerIP = Request.ServerVariables("LOCAL_ADDR")     strRemoteIP =  Request.ServerVariables("REMOTE_ADDR")     If (strServerIP = strRemoteIP) And objASPError.File <> "?" Then       Response.Write Server.HTMLEncode(objASPError.File)       If objASPError.Line > 0 Then Response.Write ", line " & objASPError.Line       If objASPError.Column > 0 Then Response.Write ", column " & objASPError.Column       Response.Write "<br>"       Response.Write "<font style=""COLOR:000000; FONT: 8pt/11pt courier new""><b>"       Response.Write Server.HTMLEncode(objASPError.Source) & "<br>"       If objASPError.Column > 0 Then Response.Write String((objASPError.Column - 1), "-") & "^<br>"       Response.Write "</b></font>"       blnErrorWritten = True     End If   End If   If Not blnErrorWritten And objASPError.File <> "?" Then     Response.Write "<b>" & Server.HTMLEncode(  objASPError.File)     If objASPError.Line > 0 Then Response.Write Server.HTMLEncode(", line " & objASPError.Line)     If objASPError.Column > 0 Then Response.Write ", column " & objASPError.Column     Response.Write "</b><br>"   End If %> </li>

<!--<li>浏览器类型:<br> <%= Server.HTMLEncode(Request.ServerVariables("HTTP_USER_AGENT")) %> <br><br></li>--> <li>页面:<br> <%   strMethod = Request.ServerVariables("REQUEST_METHOD")   Response.Write strMethod & " "   If strMethod = "POST" Then     Response.Write Request.TotalBytes & " bytes to "   End If   Response.Write Request.ServerVariables("SCRIPT_NAME")   Response.Write "</li>"   If strMethod = "POST" Then     Response.Write "<p><li>POST Data:<br>"     ' On Error in case Request.BinaryRead was executed in the page that triggered the error.     On Error Resume Next     If Request.TotalBytes > lngMaxFormBytes Then       Response.Write Server.HTMLEncode(Left(Request.Form, lngMaxFormBytes)) & " . . ."     Else       Response.Write Server.HTMLEncode(Request.Form)     End If     On Error Goto 0     Response.Write "</li>"   End If %> <br><br></li> </ul> <hr> </TD></TR></TABLE></BODY></HTML>

posted @ 2013-03-22 10:22  #i小龙#  阅读(10145)  评论(0编辑  收藏  举报