我也出现过你这种情况,当时就改成提交方式了。我那个时候用不是utf8,用的是GBK呢。

解决方案 »

  1.   

    使用页面中使用encodeURI对参数编码
    location="xxx.jsp?xxx="+encodeURI(xxx)
      

  2.   

    如果url?xx你自己可以控制,则最好进行编码,服务器端和js都可以
    如果用户直接输入url?xx=中文。则可以这样在tomacat下的server.xml里找到<Connector port="8080"  maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GB2312" />添加 URIEncoding="GB2312" 即可
      

  3.   

    location="xxx.jsp?xxx="+encodeURIComponent(xxx)
    也要添加 URIEncoding="GB2312" 到server.xml,因为tomcat有些变态,
    设了filter也无效。
      

  4.   

    谢谢大家,我目前的做法是encodeURI来做的,其实这个和tomcat下的URIEncoding关系不是很大,我所有的代码全部是UTF-8格式的,而且是公司要求,所以不能在任何地方出现,GBK,GB2312的字样,使用了encodeURI()以后,据说是可以保持参数在传递的过程中保持编辑时候的代码,而不是被tomcat弄成默认的iso8859-1的编码格式,各位辛苦了!