a. 页面指定
<%@ page contentType="text/html;charset=gb2312" %>pms是个HashMap
request.setAttribute("params", pms);b.页面指定
<%@ page contentType="text/html;charset=gb2312" %>
Map map = request.getParameterMap();
String[] xxxx = (String[])map.get("xxxx");
out.println(new String(xxxx[0].getBytes("ISO-8859-1"), "utf-8"));  //解决了乱码我的问题是:
1.指定<%@ page contentType="text/html;charset=gb2312" %>这个,不会影响request要提交的值,
要用request.setCharacterEncoding这个才行吗?它只启到了显示页面的作用
2.默认提交的值是ISO-8859-1

解决方案 »

  1.   

    <%@ page contentType="text/html;charset=gb2312" %>这个是指定页面  的编码类型  而在表单的数据  由前台传向后台的过程中是一8859-1  所以在后台要进行解码
      

  2.   

    如果是前台和后台的通信,你要在后台把页面的request.setChar和response.setChar单词我记不完,都设置为和前台页面一致的编码方式。如果仅仅只有jsp页面的通讯,你也可以尝试下直接在页面里用你说的那个设置为一致的编码方式
      

  3.   

    out.println(new String(xxxx[0].getBytes("ISO-8859-1"), "utf-8")); //解决了乱码
    我以前用的是myeclipse,用这个方式来解决乱码,不是双向解决,我建议你还是在jsp页面的设置和后台servlet里的编码方式一致。如果不能帮你解决这个问题,那就等高手吧,我接触项目也不多
      

  4.   

    page 中的contentType="text/html;charset=gb2312"不会影响的,它不对传过来的数据起作用,所以你还得设定一下编码,resquest.setCharacterEncoding("GBK");个人认为是解决乱码比较好的一种方法.
      

  5.   

    如有可能,最好都使用utf-8编码,这样windows, linux, mac, unix等都通用了,而gb2312, gb18030虽然也能在其他系统上使用,但是像linux, mac, unix默认的是使用utf-8,像ajax的post, get都默认使用utf-8,struts也是默认就是utf-8,而windows里gb2312, gbk, gb18030,好多,再比如,德语的元音(Umlaut,不知道中文有没有搞错),在gb2312下面会有冲突,显示乱码,而在utf-8里面可以共存。所以总结来看,直接使用utf-8还是比较舒服的。
      

  6.   

    contentType="text/html;charset=gb2312"不会影响的,它只起到当前页面的作用,
    request.setCharacterEncoding("gb2312"); 是对页面一致的编码方式;
      

  7.   

    我归纳过编码解码情况 可以看看那这里:
    http://light6891.blog.163.com/blog/static/96962909201071364220516/