码迷,mamicode.com
首页 > 编程语言 > 详细

Java URL传参中文乱码问题

时间:2015-08-28 19:59:54      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

<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格式的。

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

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

因此,尽量用ajax来传递中文参数。

Java URL传参中文乱码问题

标签:

原文地址:http://my.oschina.net/friendship/blog/498816

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!