Java URL传参中文乱码问题

咱们常常会遇到这样的场景:在URL中传递参数,若是该参数为中文,若是设置不当,会出现乱码问题。java

URL传参所使用的编码为服务器中设置的编码,而ajax请求的编码为页面编码。ajax

若是不设置tomcat的默认编码为ISO-8859-1,而若是在设置中加入 useBodyEncodingForURI="true"tomcat

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" 
protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>

那么url中参数的编码就与页面编码一致。服务器

若是页面编码为UTF-8,java后台编码为UTF-8,那么后台获得的参数就不会出现乱码问题。编码

若是不设置useBodyEncodingForURI="true",那么须要在java后台中,将ISO-8858-1编码的中文转换为UTF-8格式的。url

new String(search_name.getBytes("ISO-8859-1"),"UTF-8");

上述方法虽然能解决URL传参中文乱码问题,可是依赖于Tomcat服务器配置,须要不一样的业务逻辑进行处理,这样的话,同一个war包,部署到不一样的服务器上会出现问题。spa

所以,尽可能用ajax来传递中文参数。code

相关文章
相关标签/搜索