get请求参数中含URL解析时的特殊字符 和 汉字

特殊符号

记录一个前端问题

使用layer.open打开小窗口只能使用get请求,传递的参数中包含URL解析时的特殊字符,eg:
'/case/getCaseInfo?caseCode=${caseInfo.caseCode}&fileName='+data.info
然后data.info中包含&、= 的特殊字符,eg: u=2729906829,3399182358&fm=26&gp=0.jpg,
传到后台后解析出错,接收的数据跟实际不一致的情况。

使用方法: encodeURIComponent()菜鸟教程

使用一个前端的方法encodeURIComponent(param),上面的可以替换为
'/case/getCaseInfo?caseCode=${caseInfo.caseCode}&fileName='+encodeURIComponent(data.info),
就可以正常向后台传递准确的参数。下面是标识的含义
字符 含义 可替换为
# 表示书签 %23
% 指定是一个特殊字符 %25
& URL 中指定的参数间的分隔符 %26
+ 表示空格 %2B
/ 分隔目录和子目录 %2F
空格 URL中的空格可以用+号或者编码 %20
= URL 中指定参数的值 %3D
? 分隔实际的URL和参数 %3F

汉字

前端

encodeURIComponent("要传的汉字或者包含特殊字符")

java 后端

URLDecoder.decode(name, "UTF-8")

转:https://blog.csdn.net/Memory166/article/details/109780535

你可能感兴趣的:(get请求参数中含URL解析时的特殊字符 和 汉字)