此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【lixianzhang0493】截止到2008-07-25 21:36:03的历史汇总数据(不包括此帖):
发帖的总数量:5                        发帖的总分数:60                       每贴平均分数:12                       
回帖的总数量:13                       得分贴总数量:2                        回帖的得分率:15%                      
结贴的总数量:2                        结贴的总分数:0                        
无满意结贴数:2                        无满意结贴分:40                       
未结的帖子数:3                        未结的总分数:60                       
结贴的百分比:40.00 %               结分的百分比:0.00  %                  
无满意结贴率:100.00%               无满意结分率:---------------------
楼主该结一些帖子了

解决方案 »

  1.   

    不清楚,我只试过的时候, request.setCharacterEncoding是有用的
      

  2.   

    你要写一个过滤器 才能解决 中文乱码问题 在action里写是不行的
      

  3.   

    重写org.apache.struts.action.RequestProcessor这个方法
    package com.mellow.cnyf.filters;
    import java.io.UnsupportedEncodingException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.RequestProcessor;
    public class MyRequestProcessor extends RequestProcessor { protected boolean processPreprocess(HttpServletRequest arg0, HttpServletResponse arg1) {
    // TODO Auto-generated method stub
    try {
    arg0.setCharacterEncoding("UTF-8");
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    arg1.setCharacterEncoding("UTF-8");
    return super.processPreprocess(arg0, arg1);
    }}
    然后在struts的配置文件里面配置一下
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
    <struts-config>
      <data-sources />
      <form-beans />
      <global-exceptions />
      <global-forwards />
      <action-mappings />
     <controller processorClass="com.mellow.cnyf.filters.MyRequestProcessor">
    </controller>

      <message-resources parameter="com.mellow.cnyf.struts.ApplicationResources" />  
    </struts-config>
      

  4.   

    楼主那种方法只适用与表单提交的情况,而location提交的情况,只能用new String(result.getBytes("iso-8859-1"),"gbk")这种方法。
      

  5.   

    自己重写个EncodingActionServlet类继承ActionServlet
    public class EncodingActionServlet extends ActionServlet { @Override
    protected void process(HttpServletRequest request,
    HttpServletResponse response) throws IOException, ServletException {
    // TODO Auto-generated method stub
    request.setCharacterEncoding("gb2312");
    super.process(request, response);
    }
    }
    然后在web.xml中的配置稍做修改就可以,修改片断如下
    <servlet>
         <servlet-name>action</servlet-name>
         <servlet-class>packageName.EncodingActionServlet</servlet-class>
         <init-param>
           <param-name>config</param-name>
           <param-value>/WEB-INF/struts-config.xml</param-value>
         </init-param>
         <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
         <servlet-name>action</servlet-name>
         <url-pattern>*.do</url-pattern>
    </servlet-mapping>红色部分就是修改的部分