用request.getParameter()将前台页面传到后台处理时是乱码,页面中使用"text/html; charset=GBK",JAVA类中也是使用的GBK.有一个现象是:用Dreamweaver编辑页面时,Dreamweaver的页面属性里的编码是GB2312,是不是因为这个原因造成的?
请高手指教.                   谢谢.

解决方案 »

  1.   

    最好整个服务器用utf-8,出乱码情况会少点
      

  2.   

    struts默认使用的是iso-8859,两种解决方案如下:
    1.在用到页面传来值的Action中这样设置:request.setCharacterEncoding(你要设置的编码类型);
    2.使用过滤器,网上有,搜吧!——好
      

  3.   

    jsp页面上的request.编码方式设置为gb2312
    setCharacterEncoding
     <@page pageEncoding="gb2312"/>
      

  4.   

    各位的方法都试了一下,还是不行,页面上显示的中文都正常,可将输入的值转到后台类中的时候,就变成乱码了.(我是用SERVLET做的这个项目)
      

  5.   

    1、public void doGet(HttpServletRequest request, HttpServletResponse response) {
    request.setCharacterEncoding("gbk");
    ...
    2、
    在web.xml加过滤器
    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>com.common.tool.SetCharacterEncodingFilter</filter-class>
        <init-param>
          <param-name>encoding</param-name>
          <param-value>GBK</param-value>
        </init-param>
        <init-param>
          <param-name>ignore</param-name>
          <param-value>true</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <servlet-name>action</servlet-name>
      </filter-mapping>com.common.tool.SetCharacterEncodingFilter是过滤器的未知,网上很多
      

  6.   

    接到的参数 通过String上的getByte("iso-8859-1",GB2312)方法 new 一下就可以了吧
      

  7.   

    呵呵,我不是这样解决的.我是在SERVLER.XML的<Connector/>中 加了一句话,URIEncoding="GBK"就OK了.
      

  8.   

    String s=request.getParameter("传递的参数");
       String ss=new String(s.getBytes("iso-8859-1"),"gb2312");
       使用ss就不会有乱码了!
      

  9.   

    这是应用服务器的问题!
    在你的Tomcat目录-->conf目录-->server.xml里找出这段:
    <Connector 
    port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    debug="0" connectionTimeout="20000" 
    disableUploadTimeout="true" <!--在里边加上这个参数-->URIEncoding="gbk"