我在IE里输入http://localhost:8888/ecip/pages/communicate.html?outuser=1&name=2&namecn=我我我
byte[] sModule = getRequest().getParameter("namecn").getBytes("ISO8859-1");
searchModule = new String(sModule);为什么打印得到的数据是 ???, 这个怎么处理的?

解决方案 »

  1.   

     String searchModule =new String(request.getParameter("namecn").getBytes("ISO-8859-1"),"GB2312"));
      

  2.   

    byte[] sModule = getRequest().getParameter("namecn").getBytes("utf8");
    试一试。 
      

  3.   

    是要jsp里面吗?
    因为有中文,加上这个。request.setCharacterEncoding("gbk")
      

  4.   

    呵呵~~~我遇到过~~
    <Connector port="8080"               maxHttpHeaderSize="8192"
                   maxThreads="1000" minSpareThreads="400" maxSpareThreads="500"
                   enableLookups="false" redirectPort="8443" acceptCount="500"
                   connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK'/>
    在tomacat的conf/server.xml中Connector后面添加URIEncoding='GBK'
      

  5.   

    另外一种可能是要添加过滤器:web.xml添加一下部分
    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>com.iwit.noteService.util.SetCharacterEncodingFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    对应的包添加下面的部分:
    package com.iwit.noteService.util;import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.UnavailableException;public class SetCharacterEncodingFilter implements Filter
    {
     public void init(FilterConfig filterConfig) throws ServletException{}
     public void destroy(){} public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException
     {  request.setCharacterEncoding("GBK");  //传递控制到下一个过滤器
      chain.doFilter(request,response);
     }
    }
      

  6.   

    地址栏的中文要先转成Unicode
      

  7.   

      String   tt   =   new   String(request.getParameter("tt").getBytes("UTF-8"));   
      

  8.   

    没有见过中文域名吗?LZ问的不太清楚,
    如果是用tomcat的话,试下4楼的方法。
    用过滤器好像不起作用。
      

  9.   

    可以使用一下集中方式解决:
    request.setCharacterEncoding("GBK");
    request.setCharacterEncoding("UTF-8");
    request.setCharacterEncoding("gb2312");
      

  10.   

    1 服务器自身不支持编码,所以如果是tomcat,需要在server.xml里面修改一下配置才可以
    Tomcat 的 GET 方式编码的设置,解决中文文件名URL的问题2 如果还是不行,你可以考虑给汉字做编码了,也就是不要让汉字直接出现在URL里面,而是变成 %B8%5A类似的方式,比如你去baidu 搜索汉字,就会看到这个的。汉字已经变成了这种格式
    URLEncoder.encode();这个方法就是用来给汉字的URL进行编码的。
      

  11.   

    你首先要更改你server.xml中的内容,更改内容为
    <Connector port="8080"               maxHttpHeaderSize="8192"
                   maxThreads="1000" minSpareThreads="400" maxSpareThreads="500"
                   enableLookups="false" redirectPort="8443" acceptCount="500"
                   connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='UTF-8'/>
    再将页面的值应该这样写:
    String str = getRequest().getParameter("namecn") 
    searchModule = new String(str.getBytes("iso-8859-1"),"utf-8"); 
      

  12.   

    byte[] sModule = getRequest().getParameter("namecn").getBytes("gbk"); 
    或者request.setCharacterEncoding("GBK"); 
    都可以试试