URLEncoding.encode 对中文进行编码
URLDecoding.decode 对编码过的进行解码

解决方案 »

  1.   

    其实你可以先尝试charset filter 
    但是服务器如果是tomcat5以上 那么这个filter只对post有效  get就要设置服务器的属性
    而且并不一定完全好用,那时候就需要用我一开始提到的方式自己来编码解码,百试不爽的
      

  2.   

    下面是tomcat给的filter
    你在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>你的编码</param-value>
            </init-param>
        </filter> <filter-mapping>
            <filter-name>Set Character Encoding</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    然后 你的页面中使用post的方式提交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;
    /**
     * <p>Example filter that sets the character encoding to be used in parsing the
     * incoming request, either unconditionally or only if the client did not
     * specify a character encoding.  Configuration of this filter is based on
     * the following initialization parameters:</p>
     * <ul>
     * <li><strong>encoding</strong> - The character encoding to be configured
     *     for this request, either conditionally or unconditionally based on
     *     the <code>ignore</code> initialization parameter.  This parameter
     *     is required, so there is no default.</li>
     * <li><strong>ignore</strong> - If set to "true", any character encoding
     *     specified by the client is ignored, and the value returned by the
     *     <code>selectEncoding()</code> method is set.  If set to "false,
     *     <code>selectEncoding()</code> is called <strong>only</strong> if the
     *     client has not already specified an encoding.  By default, this
     *     parameter is set to "true".</li>
     * </ul>
     *
     * <p>Although this filter can be used unchanged, it is also easy to
     * subclass it and make the <code>selectEncoding()</code> method more
     * intelligent about what encoding to choose, based on characteristics of
     * the incoming request (such as the values of the <code>Accept-Language</code>
     * and <code>User-Agent</code> headers, or a value stashed in the current
     * user's session.</p>
     *
     * @author Craig McClanahan
     * @version $Revision: 1.1.1.1 $ $Date: 2002/08/27 13:16:54 $
     */public class SetCharacterEncodingFilter implements Filter {
        // ----------------------------------------------------- Instance Variables
        /**
         * The default character encoding to set for requests that pass through
         * this filter.
         */
        protected String encoding = null;
        /**
         * The filter configuration object we are associated with.  If this value
         * is null, this filter instance is not currently configured.
         */
        protected FilterConfig filterConfig = null;
        /**
         * Should a character encoding specified by the client be ignored?
         */
        protected boolean ignore = true;
        // --------------------------------------------------------- Public Methods
        /**
         * Take this filter out of service.
         */
        public void destroy() {        this.encoding = null;
            this.filterConfig = null;    }
        /**
         * Select and set (if specified) the character encoding to be used to
         * interpret request parameters for this request.
         *
         * @param request The servlet request we are processing
         * @param result The servlet response we are creating
         * @param chain The filter chain we are processing
         *
         * @exception IOException if an input/output error occurs
         * @exception ServletException if a servlet error occurs
         */
        public void doFilter(ServletRequest request, ServletResponse response,
                             FilterChain chain)
    throws IOException, ServletException {        // Conditionally select and set the character encoding to be used
            if (ignore || (request.getCharacterEncoding() == null)) {
                String encoding = selectEncoding(request);
                if (encoding != null)
                    request.setCharacterEncoding(encoding);
            } // Pass control on to the next filter
            chain.doFilter(request, response);    }
        /**
         * Place this filter into service.
         *
         * @param filterConfig The filter configuration object
         */
        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 Methods
        /**
         * Select an appropriate character encoding to be used, based on the
         * characteristics of the current request and/or filter initialization
         * parameters.  If no character encoding should be set, return
         * <code>null</code>.
         * <p>
         * The default implementation unconditionally returns the value configured
         * by the <strong>encoding</strong> initialization parameter for this
         * filter.
         *
         * @param request The servlet request we are processing
         */
        protected String selectEncoding(ServletRequest request) {        return (this.encoding);    }
    }
      

  3.   

    license  太长  分一个帖子给你
    /*
     * $Header: /home/cvs/jakarta-servletapi-5/jsr152/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java,v 1.1.1.1 2002/08/27 13:16:54 remm Exp $
     * $Revision: 1.1.1.1 $
     * $Date: 2002/08/27 13:16:54 $
     *
     * ====================================================================
     *
     * The Apache Software License, Version 1.1
     *
     * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
     * reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * 1. Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * 2. Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in
     *    the documentation and/or other materials provided with the
     *    distribution.
     *
     * 3. The end-user documentation included with the redistribution, if
     *    any, must include the following acknowlegement:
     *       "This product includes software developed by the
     *        Apache Software Foundation (http://www.apache.org/)."
     *    Alternately, this acknowlegement may appear in the software itself,
     *    if and wherever such third-party acknowlegements normally appear.
     *
     * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
     *    Foundation" must not be used to endorse or promote products derived
     *    from this software without prior written permission. For written
     *    permission, please contact [email protected].
     *
     * 5. Products derived from this software may not be called "Apache"
     *    nor may "Apache" appear in their names without prior written
     *    permission of the Apache Group.
     *
     * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
     * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
     * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
     * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
     * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     * SUCH DAMAGE.
     * ====================================================================
     *
     * This software consists of voluntary contributions made by many
     * individuals on behalf of the Apache Software Foundation.  For more
     * information on the Apache Software Foundation, please see
     * <http://www.apache.org/>.
     *
     * [Additional notices, if required by prior licensing conditions]
     *
     */
      

  4.   

    你记得一点,get方法不是传中文.传过来的是乱码..
    你需要自己处理的..
    也能接收到,只是自己处理比较麻烦一点..
      

  5.   

    String s = new String(aaa.getBytes("iso-8859-1"),"GBK");
      

  6.   

    一种是将你要传递的中文转换成Uncode再传,一种是你将页面的文档格式设置好.不行的话。自己加个方法,将文字转换一下,也就是传递的时候不要以中文传递而显示的时候再转变回来就行了,各大软件的教学参考书均有此解释
      

  7.   

    试一下:到tomcat的server.xml文件中进行设置。在<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25"  URIEncoding="UTF-8">设置URIEncoding="UTF-8"在    <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443" URIEncoding="UTF-8"> 也设置.
      

  8.   

    URL一般是不能传送中文的,非要传只能先转下编码,到后台再解码
      

  9.   

    你可以先把要传的中文 utf8下
      

  10.   

    String aaa="工工工工工工工工";
    document.form1.action = "gs_yuangongxinxi.do?method=doAdd&aaa="+aaa;
    --------------------------------------------------------------------
    是scipt代码吧,应该是var
    var aaa="工工工工工工工工";
    document.form1.action = "gs_yuangongxinxi.do?method=doAdd&aaa="+aaa;