location.href传中文参数与java编解码解决get请求乱码

本文介绍了一种确保前后端数据一致性的方法,通过两次编码和一次解码过程来解决中文乱码问题。具体包括前端两次编码的实现方式及后端对应的解码操作。

首先在页面传参的地方要进行两次编码

location.href=URL+"?name="+encodeURI(encodeURI($scope.name))
在后端接收的时候将获取的数据进行解码
String newName = URLDecoder.decode(name, "UTF-8");
原因分析:
首先在界面上将数据进行两次编码 第一次转化为%AC%DB...这样子格式的数据
然后第二次编码将%进行编码
在后端接收的时候就会将数据接收为
%AC%DB这样子格式的数据  此时进行一次按照UTF-8进行解码实现数据的传递。


在java代码中通过httpClient发送get请求时会发生中文乱码问题:

在传递的中文参数里面添加编码

getMethod.setRequestHeader("voiceName", URLEncoder.encode(filename,"UTF-8"));
在获取的时候进行解码实现解决中文乱码问题

String voiceName = request.getHeader("voiceName");
voiceName = URLDecoder.decode(voiceName,"UTF-8");



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值