首页
JAVA笔记
数据库笔记
混乱记忆
小站记
您现在的位置
urlrewrite乱码问题
简介: 今天测试的时候发现urlrewrite导致页面乱码,浪费了很多时间特此记录。

今天在配置统一出错调试页面的时候竟然发现urlrewrite会导致乱码

 

环境描述

操作系统:win7

web容器:tomcat 5.5.20

urlrewrite版本:3.3.0

 

web.xml添加配置

<error-page>
 <error-code>500</error-code>
 <location>/500.jsp</location>
 </error-page>

 

定位过程:

java代码出错时进入500错误页面,发现中文乱码,查看页面编码都是同一的UTF-8没有任何问题:

<%@ page language="java" isErrorPage="true" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>


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

 

直接访问500.jsp 未出现乱码。

 

在一个测试页面中故意写入除零代码,执行的时候出错并跳转到500页面,页面无乱码。

 

直接请求action后action内出现错误,页面跳转到500页面,页面无乱码。

 

这时候就开始怀疑是什么东西把500.jsp编码输出。

 

继续测试发现只要不是通过urlrewrite 的页面都不乱码,这就说明是urlrewrite导致的问题。

 

解决办法:更换高版本的tomcat

我在测试环境上发现不了乱码。

测试环境介绍:

 

操作系统:Ubuntu 12

web容器:tomcat 6.0

urlrewrite版本:3.3.0

系统字符集:用locale查看得到 lang=en_us.UTF-8

 

初步判断可能是字符集问题,我在tomcat启动参数中没有配置字符集,可能默认使用了ISO8859-1的字符集了可能是urlrewrite在传回页面的时候出发了什么编码动作,所以出现了乱码,肚子好饿吃饭去先。

 

经过晚上的测试终于发现问题了,我在win7的开发环境上换成6.0.2的tomcat 乱码问题消失。关于这个问题不知道应该归结于是tomcat 版本有隐藏BUG还是 urlrewrite有BUG,总之是没有定位到具体原因,解决办法就是升级tomcat。