此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【yeshuangming】截止到2008-07-22 11:00:00的历史汇总数据(不包括此帖):
发帖的总数量:8                        发帖的总分数:150                      每贴平均分数:18                       
回帖的总数量:64                       得分贴总数量:23                       回帖的得分率:35%                      
结贴的总数量:7                        结贴的总分数:130                      
无满意结贴数:2                        无满意结贴分:40                       
未结的帖子数:1                        未结的总分数:20                       
结贴的百分比:87.50 %               结分的百分比:86.67 %                  
无满意结贴率:28.57 %               无满意结分率:30.77 %                  
楼主加油

解决方案 »

  1.   

    一下代码都解析不出来  request.setCharacterEncoding("utf-8");
      String keyName = request.getParameter("keyname");
      logger.debug("original keyName: " + keyName);

      System.out.println("GBK: "+new String(keyName.getBytes("GBK"),"utf-8"));
      System.out.println("gb2312: "+new String(keyName.getBytes("gb2312"),"utf-8"));
      System.out.println("ISO-8859-1: "+new String(keyName.getBytes("ISO-8859-1"),"utf-8"));
      System.out.println("utf-8: "+new String(keyName.getBytes("utf-8"),"utf-8"));
      

  2.   

    如果不设置server.xml的话,那么你每次的url参数中如果有中文就要提前encode一下,当servlet或者jsp接到以后,然后再decode一下,当然encode的字符级和decode的字符级要保持一致.,
      

  3.   

    tomcat的server.xml中Connector节点中增加 URIEncoding="GBK"
      

  4.   

    呵呵.....需要写一个actionservlet继承ActionServlet
    package com.xxxx.dao;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionServlet;public class myActionServlet extends ActionServlet {
    @Override
    protected void process(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException {     /**@todo Override this org.apache.struts.action.ActionServlet method*/     request.setCharacterEncoding("GBK");   
       super.process(request, response);  
    }
    }然后把web.xml文件里的<servlet-name>action</servlet-name>改为
    <servlet-name>action</servlet-name>
        <servlet-class>com.xxxx.dao.myActionServlet</servlet-class>这其实就是STRUTS的中文问题
      

  5.   

    get提交哦。
    如果不是中文能不能得到参数的值呢。
    试试!
      

  6.   

    我设的是  Connector节点中的 URIEncoding="utf-8"再有,我是要在浏览器中直接输入http://127.0.0.1:8080/encode/xml?keyname=词条&labelsearch=标签&start=0&length=1 
    去调用接口的,怎么去encode呢?
      

  7.   

    不好意思...........我看成Struts了.......请54楼上的那些..........
      

  8.   

    参数都能得到,只是中文的参数都变乱码
      request.setCharacterEncoding("utf-8");
      String keyName = request.getParameter("keyname");
      logger.debug("original keyName: " + keyName);
        
      System.out.println("GBK: "+new String(keyName.getBytes("GBK"),"utf-8"));
      System.out.println("gb2312: "+new String(keyName.getBytes("gb2312"),"utf-8"));
      System.out.println("ISO-8859-1: "+new String(keyName.getBytes("ISO-8859-1"),"utf-8"));
      System.out.println("utf-8: "+new String(keyName.getBytes("utf-8"),"utf-8"));不管有没有在server.xml中的Connector节点中设 URIEncoding="utf-8" 
    上面的编码转换都转换不出来
      

  9.   

    其实上一段时间还可以的,回学校两个月回来,以前的代码就出问题了。
    难道是tomcat的问题,重装一下看看。
      

  10.   

    试过了,你这样取值String strName = new String(keyName.getBytes("ISO-8859-1"),"gb2312"));
    不是UTF-8
    我也不知道为什么
    URIEncoding可以不改,也可以改成URIEncoding="gb2312",但不能改为URIEncoding="UTF-8"
    这样取一下值试试,我的通过了