String s=resquest.getParameter("content");

解决方案 »

  1.   

    一般要把gbk转换为iso8859的,
    以下是一个转换方法:
     public static String fromGBKtoISO(String s, boolean rSwitch){
        try {      
          if(!rSwitch)
            return s;
          if (s==null || s.length()<1) return s;
          byte[] temp = s.getBytes("GBK");
          String a = new String(temp,"iso8859-1");
          return a;
        }catch (Exception e) {
          return null;
        }
      }
      

  2.   

    tomcat下面有一个SetCharacterEncodingFilter的例子
    源码如下
    package filters;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 {  protected String encoding = null;  protected FilterConfig filterConfig = null;  protected boolean ignore = true;  public void destroy() {    this.encoding = null;
        this.filterConfig = null;  }  public void doFilter(ServletRequest request, ServletResponse response,
                           FilterChain chain) throws IOException, ServletException {    if (ignore || (request.getCharacterEncoding() == null)) {
          String encoding = selectEncoding(request);
          if (encoding != null)
            request.setCharacterEncoding(encoding);
        }    chain.doFilter(request, response);  }  public void init(FilterConfig filterConfig) throws ServletException {    this.filterConfig = filterConfig;
        this.encoding = filterConfig.getInitParameter("encoding");
        String value = filterConfig.getInitParameter("ignore");
        if (value == null)
          this.ignore = true;
        else if (value.equalsIgnoreCase("true"))
          this.ignore = true;
        else if (value.equalsIgnoreCase("yes"))
          this.ignore = true;
        else
          this.ignore = false;  }  protected String selectEncoding(ServletRequest request) {    return (this.encoding);  }}然后在web.xml里面加入以下
    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
          <param-name>encoding</param-name>
          <param-value>GBK</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      

  3.   

    补充以上代码对post方法的数据有效对get无效
      

  4.   

    String s=new String(resquest.getParameter("content").getBytes("ISO_8859_1"),"GB2312");
    out.println(s);
      

  5.   

    String s=new String(resquest.getParameter("content").getBytes("ISO8859_1"),"GB2312");
    out.println(s);
      

  6.   

    各位大哥的热心帮助心领.可是
    url?content=中文
    这种属于get吧.
    再都我上边说的工试过
    new String (***.getByte("iso8859-1"),"gb2312")不好用.
    各位的心意我领了.谢谢