[求助]tomcat,web.xml,<error-page>,乱码

07-09-05 cleanearth

应用服务器为tomcat-6.0.13

我在项目的web.xml中写了如下的error-page代码:

<error-page>

<error-code>404</error-code>

<location>/common/error.jsp</location>

</error-page>

我这个项目全部jsp文件采用utf-8编码,以下为error.jsp中的几句编码指示语句:

<%@ page language="java" pageEncoding="UTF-8"%>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

假设我的项目地址为

http://localhost:8080/project

同时假设项目下有a.jsp,b.jsp,而没有c.jsp

当我访问地址:http://localhost:8080/project/c.jsp时,

就会显示error.jsp页面,但此时显示的页面中的中文全部为乱码

而当我直接访问地址:http://localhost:8080/project/common/error.jsp时,

却能正常显示其中的中文

所以,在此请各路高手帮忙解,在此先谢过

maxercn
2007-09-08 15:28

如果你的程序涉及到uri傳值的話,那必須設定tomcat的encoding。

以下是我在網上找的,

打开tomcat的server.xml文件,找到区块,加入如下一行:

URIEncoding=”GBK”

完整的应如下:

在server.xml修改2个地方

<Connector port="8080"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

debug="0" connectionTimeout="20000"

disableUploadTimeout="true" URIEncoding=’GBK’/>

<Connector className="org.apache.coyote.tomcat5.CoyoteConnector"

port="8009" minProcessors="5" maxProcessors="75"

enableLookups="true" redirectPort="8443"

acceptCount="10" debug="0" connectionTimeout="0"

useURIValidationHack="false" protocol="AJP/1.3"

protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"

URIEncoding=’GBK’/>

cleanearth
2007-09-10 11:33

这里没有涉及到uri傳值的问题吧

当我访问一个不存在的地址时,tomcat会自动调用error.jsp