您好,欢迎访问一九零五行业门户网

js、URL传递含有中文参数时的乱码问题解决

1、使用代码完成字符集修改
方法(一): 
html页面:
function testone() {
var url =  testone_test.do?expr=+你好;
location  = encodeuri(url);
}
后台java代码:
string expr = new string(request.getparameter(expr).getbytes(iso-8859-1),utf-8);
方法(二):
html页面:
function testone() { 
   var url =  testone_test.do?expr=+你好; 
   location = encodeuri(encodeuri(url)); 
}
后台java代码: 
string expr = java.net.urldecoder.decode(lrequest.getparameter(expr) , utf-8); 
2、修改tomcat中的配置参数
在tomcat下面找到server.xml 
<connector port="8080" maxthreads="150" minsparethreads="25" maxsparethreads="75" uriencoding="gbk"> 
根据需要修改为utf-8等字符集。 
3、在web工程中添加spring.jar,使用spring的characterencodingfilter
view plaincopy to clipboardprint?
<filter>  
     <filter-name>encoding</filter-name>  
     <filter-class>org.springframework.web.filter.characterencodingfilter</filter-class>  
     <init-param>  
      <param-name>encoding</param-name>  
      <param-value>utf-8</param-value>  
     </init-param>  
    </filter>  
    <filter-mapping>  
     <filter-name>encoding</filter-name>  
     <url-pattern>/*</url-pattern>  
    </filter-mapping>
org.springframework.web.filter.characterencodingfilter 中的转码部分:
view plaincopy to clipboardprint?
protected void dofilterinternal(  
      httpservletrequest request, httpservletresponse response, filterchain filterchain)  
      throws servletexception, ioexception {
if (this.encoding != null && (this.forceencoding || request.getcharacterencoding() == null)) {  
      request.setcharacterencoding(this.encoding);  
      if (this.forceencoding && responsesetcharacterencodingavailable) {  
       response.setcharacterencoding(this.encoding);  
      }  
     }  
     filterchain.dofilter(request, response);  
    }
其它类似信息

推荐信息