在"Apache2.2和Tomcat5.0的整合(二)—解决REDIRECT_URL的中文路径问题"(http://www.iteye.com/topic/105363)中提到
---------------------------
通过mod_jk整合Apache和Tomcat,在Servlet中可以通过request.getAttribute("REDIRECT_URL")获得Apache自定义错误处理的原始URL。不幸的是,如果这个REDIRECT_URL包含中文路径,我们获得的将是乱码。例如:请求不存在的页面http://localhost/rp/数字故宫/hh.html, 返回结果为:/rp/æ°å­æ宫/hh.html
---------------------------------
为此需要修改mod_jk源代码来解决,比较麻烦。
今天调试服务器刚好也碰到传递URL中文参数导致的中文乱码问题,尝试修改Jboss(Tomcat)的配置解决了这个问题,我想对于中文路径应该也有效。 具体操作是修改{jboss目录}/server/default/deploy/jboss-web.deployer/server.xml中的
<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3" emptySessionPath="true" enableLookups="false" redirectPort="8443" />
修改为
<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3" emptySessionPath="true" enableLookups="false" redirectPort="443" URIEncoding="UTF-8" />
增加了URIEncoding="UTF-8" 如果低版本应该是{jboss目录}/server/default/deploy/xmljbossweb-tomcat55.sar/server.xml