背景:URI链接对于带有中文字符的参数传入会有编码转换问题,不做处理则会出现乱码。
处理逻辑:对URI进行编码传送——后端经行URI解码还原
使用方法:
前端:
var url = http://ip:port/context?PARAM=中文;
//转码(要转码两次)
url1 =encodeURI(url);//转码一次
url2 =encodeURI(url2);//再转码一次
后端:
String param = request.getParameter("PARAM");
if(!StringUtils.isEmpty(param)){
param = URLDecoder.decode( request.getParameter("PARAM"),"UTF-8");//解码
}
解说:
前端解码两次说明:
假设页面端输入的中文是一个“中”,按照下面步骤进行解码
1.第一次encodeURI,按照utf-8方式获取字节数组变成[-28,-72-83],对字节码数组进行遍历,把每个字节转化成对应的16进制数,这样就变成了[E4,B8,AD],最后变成[
转载请注明原文地址: https://ju.6miu.com/read-679920.html