jsp页面抓取request里的参数是乱码

在一个表单里面输入汉字,然后在请求页面通过request.getParameter()得到的是乱码
[code="java"]
String name = request.getParameter("username");
name = new String(name.getBytes("ISO-8859-1"),"big5");//这句如果注释掉,name可以抓到值,只不过是乱码,如果不注释,就抱错
[/code]
下面是后台报错信息
[color=red]
严重的:Servlet.service() for Servlet ISP threw exception
[u]java.lang.NullPointerException[/u]
at org.apache.jsp.ecn.select_005fuser_jsp._jspService(select_005fuser_jsp.java:116)
at......
[/color]
以前都是这样处理乱码的,这次却不行,真纠结
我们公司用的都是繁体系统,我所有的页面pageEncoding="utf-8"
请大家帮看下,非常感谢

1、从你的错误可以看到是空指针,如果你用tomcat,请到:
apache-tomcat-6.0.20\work\Catalina\localhost[color=red]web应用[/color]\org\apache\jsp\jsp\

下找到 select_005fuser_jsp.java 定位 116行 看看到底哪个造成的空指针。

  1. IE 字体编码是否是GB2312 工具栏-查看-编码
  2. 换成utf-8试了吗?
    name = new String(name.getBytes("ISO-8859-1"),"utf-8");

  3. 如果是get 方式提交 ,Tomcat server.xml 最好 加一个URIEncoding 属性:

    connectionTimeout="20000"
    redirectPort="8443" URIEncoding="utf-8"/>

你注释掉重新构建一下你的项目,要clean一下。

这种诡异的问题,果断换个web容器试试

1.用utf-8..
2.乱码是什么形式的?没猜错的话用utf后是??????这样的乱码..
3.你确定是post?

4. connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>

5.换个tomcat试试....你看看你定义的编码拦截器是否正确...struts2..自己有个拦截器

估计前台和后台发送的格式不统一
加个过滤器吧
[code="java"]@Override
protected void doFilterInternal(
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
if (StringUtils.contains(request.getRequestURI(), "/pay/refundReturn/")) {
request.setCharacterEncoding("GBK");
} else {
if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) {
request.setCharacterEncoding(this.encoding);
if (this.forceEncoding) {
response.setCharacterEncoding(this.encoding);
}
}
}
filterChain.doFilter(request, response);
}[/code]

NullPointerException 的情况,建议去看看Tomca编译后的java文件。