Java URL传参中文乱码问题

我们经常会遇到这样的场景:在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来传递中文参数。

转载于:https://my.oschina.net/friendship/blog/498816

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值