。。之前我也试过这样- -实在找不能解决办法只好 前台用encodeURI(encodeURI("String"))转回后台decode

解决方案 »

  1.   

    tomcat默认会把get提交过来参数按iso8859-1进行转码,所以你要修改一下这个配置。
      

  2.   

    我也遇到过类似的问题,mysql数据库有个默认的编码,最后我重装的mysql才解决的问题。
      

  3.   

    jsp页面表单提交使用post方式。
      

  4.   

    在你的Tomcat目录下的conf文件夹里面的server.xml文件中的Connector节点加上URIEncoding="UTF-8":<Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" URIEncoding="UTF-8" />
      

  5.   

    tomcat里面我配置了 URIEncoding="UTF-8"  表单也是用post提交的。可是问题依旧
      

  6.   

    package com.uucall.filter;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;
    public class EncodingFilter implements Filter {
        /**
         * Take this filter out of service.
         */
        public void destroy() {
        }    /**
         * Select and set (if specified) the character encoding to be used to
         * interpret request parameters for this request.
         */
        public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
            request.setCharacterEncoding("utf-8");
            chain.doFilter(request, response);
        }    public void init(FilterConfig filterConfig) throws ServletException {
        }
    }
      

  7.   

    上面是过滤器的书写,配置这么写
    <filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>com.uucall.filter.EncodingFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
      

  8.   

    给个具体点的例子行吗? 这个办法其实也不是很好,因为不是全局的。
    首先用jquery拿到所填地方的中文值。用encodeURI(encodeURI("值"))。然后执行action。到了后台用
    String tager = java.net.URLDecoder.decode("接到收的字符串temp", "utf-8");
      

  9.   

    给个具体点的例子行吗? 这个办法其实也不是很好,因为不是全局的。
    首先用jquery拿到所填地方的中文值。用encodeURI(encodeURI("值"))。然后执行action。到了后台用
    String tager = java.net.URLDecoder.decode("接到收的字符串temp", "utf-8");
    如果你是表单提交,就直接把他给设为转码后的值再提交就OK了。不知我这样说你懂不懂。不过填写中文。一般都是在搜索时才会出现的乱码~~
      

  10.   

     request.setCharacterEncoding("utf-8")。。设置这个 
      

  11.   

    +1,以前也遇到过。加上后面的URIEncoding就OK了
      

  12.   

    给个具体点的例子行吗? 这个办法其实也不是很好,因为不是全局的。
    首先用jquery拿到所填地方的中文值。用encodeURI(encodeURI("值"))。然后执行action。到了后台用
    String tager = java.net.URLDecoder.decode("接到收的字符串temp", "utf-8");
    我现在就是用这种方法解决的,确实不是全局的,但是用了过滤器依然不起作用,所以很闹心啊
      

  13.   

    我上面的过滤器也是这么写的啊,配置文件中的false改成true,但是从页面传过来的值依然是乱码,我是表单提交的,用的是post