我的页面post提交后收到的是乱码,我的接收方法是:String submit = new String(request.getParameter("submit").getBytes("ISO-8859-1"),"GB2312") ;  其中submit是汉字我在接受页面开头也加了<%@ page language="java" pageEncoding="GB2312"%>
<%@ page contentType="text/html;charset=GB2312"%>
<head></head>里也加了<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
但接受后输出总是????一堆问号急救啊。。搞了好长时间啦连过滤器也加了都不行

解决方案 »

  1.   

    你先把
    request.getParameter("submit")
    打印出来看看乱码不
      

  2.   

    request.setCharacterEncoding("GB2312");
    request.getParameter("submit")
      

  3.   

    额, 有没有用Struts2?
      如果用了Struts2的话必须与struts2的编码一致.
    如果页面是GB2312提交后request.setCharctorEncoding("GB2312");
          requst.getParamater("submit");
      

  4.   

    request.setCharacterEncoding("GB2312");
      

  5.   

     JSP 页面只要和 MYECLIPSE 的编码格式一样 不转码都可以! 我以前从不转码的 特别需要再考虑 先确认你2个的编码格式是不是都一样
      
     然后输出来看看 request.getParameter("submit")
      

  6.   

    加上request.setCharacterEncoding("GB2312");和改成utf-8的方法都试了。不行的
    刚我打印了一下
    out.println(request.getParameter("submit"));正常显示,但我赋到一个变量里String submit = request.getParameter("submit") ;再输出就页面空白啦
      

  7.   

    咋样设置myeclipse的编码格式呢?我没有找到
      

  8.   

    window-->preferences-->General-->Content Types-->右侧Text中选择java,或jsp,下面有个
    default encoding
      

  9.   


    见我的答复就行了,你也可以设置其他的比如.txt,.html..什么的,,
      

  10.   


    ??? 无语了 我的怎么可以? 全部搞成GBK 的吧 你的那个submit 是啥玩意啊?  你在2个地方设置不同的格式? 只要加一个就OK 了 我在接受页面开头也加了<%@ page language="java" pageEncoding="GBK"%>这样玩玩 哎 你好幸福啊..我现在好郁闷!
      

  11.   


    web乱码
    http://blog.csdn.net/crazylaa/archive/2009/12/24/5066784.aspx
      

  12.   

    request.getParameter("submit");
    你是用 url?submit=xxx 传的参数吗?如果是的话在页面中,用JS的encodeURIComponent()方法将参数转码一下,就可以了在后台直接取出来了,不会乱码的。
      

  13.   

    都不行还是只有这里不行?
    用的什么服务器,会不会服务器里设置的有问题。 tomcat里在conf->server.xml中可以设置url的编码方式,会不会这里有问题
      

  14.   

    是在form里提交的。。submit是个表单名称
      

  15.   

    。。       表单名称是中文的? 你是说下面这个东西?
    <form  id="form1" method="post" action="">
    </form>
      

  16.   

    你要获取表单名称干嘛,你不是获取表单内name属性所对应的值吗??
      

  17.   

    在接收post提交的参数之前,使用request.setCharactEncoding("utf-8")
     response.setContentType("text ml;charset=UTF-8")
      

  18.   

    提交表单时,在form标签中加个属性 method='post'
      

  19.   

    在filter里面也加上request.setCharacter("gb2312");试试
    如果resources也要设置也加上
      

  20.   

    一般做项目的话,谁也不会单独在控制器中写编码格式,都是统一写在一个过滤器文件中的,
    然后再web.xml中配置,过滤器,每一个请求都要经过过滤器,过滤器主要就是统一编码。//写一个filter文件:文件名:CodeFilter.java
    //具体内容:import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;public class CodeFilter implements Filter { public void destroy() {
    // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    chain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub }}//然后再web.xml中配置,com.scms.filter是包名
    //具体如下:
      <!-- 过滤器 -->
      <filter>
       <filter-name>code</filter-name>
       <filter-class>com.scms.filter.CodeFilter</filter-class>
      </filter>
      <filter-mapping>
       <filter-name>code</filter-name>
       <url-pattern>/*</url-pattern>
      </filter-mapping>
      

  21.   

    如果你是post的请求 那么写的过滤器才会有作用!
      

  22.   

    String submit = new String(request.getParameter("submit").getBytes("ISO-8859-1"),"GB2312") 
    改为
    request.setCharacterEncoding("GB2312");
    String submit = request.getParameter("submit");