首先在页面传参的地方要进行两次编码
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");