是字符编码问题呀,需要转换编码。new String(request.getParameter("...").getBytes("ISO-8859-1"), "GBK或GB2312或UTF-8")

解决方案 »

  1.   

    >不过同样的文件复制到由另一个程序员部署的服务器上又是正常的这也不奇怪,可能是专有部署描述符不同导致的。WebSphere 不熟悉,但 Weblogic 中就可以使用专有部署描述符声明怎样处理字符集和编码问题。WebSphere 和 Weblogic 一样是个非常复杂的东西(或者更复杂一些),因此一定有同样功能的东西。表单提交中,乱码问题产生的原因在于大多数应用服务器将 ISO-8859-1 作为默认的请求编码,而我们更经常使用的是 GBK/GB2321/UTF-8。因此一旦发现乱码,就需要进行编码转换。前边我已经说过了两种不同的转换方法,还有一种更常用的方法就是使用过滤器。非常简单:web.xml 文件:<web-app>
      <filter>
        <filter-name>EncodingFilter</filter-name>
        <display-name>EncodingFilter</display-name>
        <description>no description</description>
        <filter-class>com.stormzone.simwar.web.EncodingFilter</filter-class>
        <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>EncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    </web-app>过滤器类文件 EncodingFilter.java:package com.stormzone.simwar.web;import javax.servlet.ServletException;
    import javax.servlet.ServletContext;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.http.HttpSession;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    public class EncodingFilter implements Filter {    private FilterConfig config = null;
        // default to ASCII
        private String targetEncoding = "UTF-8";    public void init(FilterConfig config) throws ServletException {
            this.config = config;
            this.targetEncoding = config.getInitParameter("encoding");
        }    public void destroy() {
            config = null;
            targetEncoding = null;
        }     public  void doFilter(ServletRequest srequest, ServletResponse  sresponse, FilterChain chain)
            throws IOException, ServletException {        HttpServletRequest request = (HttpServletRequest)srequest;
            request.setCharacterEncoding(targetEncoding);
            // move on to the next
           chain.doFilter(srequest,sresponse);
        }
    }注意两个文件中的 utf-8,你可以根据自己的实际情况修改成 gb2312 或 gbk,以不乱码为检验标准。:)