<%@ page contentType="text/html; charset=GBK" %>
<jsp:useBean id="EL" scope="request" class="javaBean" />
<jsp:setProperty name="EL" property="*" />
<html>
<head>
<title>
register
</title>
</head>
<body bgcolor="#ffffff">
<h2>${requestScope.EL["userName"]},登陆成功!</h2>
您的登陆信息如下:
<table border="1" bordercolor="#000000" >
<tr >
<!--这里用${requestScope.EL["userName"]}如果request中的变量包含中文就会出现乱码-->
  <td >用户名:</td><td>${requestScope.EL["userName"]}</td>
</tr>
</table>
</body>
</html>该页面为B.jsp 假设是由A.jsp提交到B.jsp的,A.jsp有一个文本框name为userName
javaBean有getuserName(),setName()方法
出现的现象就是在表单A.jsp提交userName经过JAvaBean后,在B.jsp中用表达式${requestScope.EL["userName"]返回值就会产生乱码.请问该怎么解决挖!!!!!容器是Tomcat5.0

解决方案 »

  1.   

    一般加一句代码就可以啦:<%request.setCharacterEncoding("gb2312");%>
    你试试吧,我不知道具体能不能
      

  2.   

    A页面如果用POST方法如果页面编码(pageEncoding)为GBK没有问题,
    如果使用Get方法,就算是页面编码为gbk也有问题,可以用2楼的方法解决,也可以修改tomcat的conf文件夹下的server。xml文件
    在connector这项的后面添加属性URIEncoding="GBK",产生乱码的原因是tomcat这个web容器默认的编码方式为utf-8
      

  3.   

    如果上面他们说的方法不行,你就把userName转成16进制码传递,然后B.jsp中得到后再转回来。
      

  4.   

    有些页面传递中文变成乱码跟系统有关,我就碰到过在linux上好的,跑到solaris上就是乱码,编码转一下传递无敌的,呵呵。