【知识点】请求参数编码

项目中使用@RequestParam注解来接收请求参数时,参数值中包含特珠字符例如’{‘和’}',传递的时需要进行编码。常见的编码方式有:

1.URI编码
可以使用 java.net.URLEncoder.encode() 方法将参数值进行URL编码,示例如下

@PostMapping("/test")
@ResponseBody
public String test(@RequestParam("param") String param) {
	String decodedParam = URLDecoder.decode(param,"UTF-8"); // 对参数进行URL解码
	// 解折decodedParam 字符串,进行后续操作
	return "success";
}

2.Base64编码
可以使用Java提供的Base64类进行编码和解码,示例如下

@PostMapping("/test")
@ResponseBody
public String test(@RequestParam("param") String param) (
	byte[] bytes = Base64.getDecoder().decode(param); // 对参进行Base64解码
	String decodedParam = new String(bytes, Charset.forName("UTF-8")); // 解码后的字节教组转换为字符串
	//解析decodedParam字符串,进行后续操作
	return "success";
}

注意:对于包含特珠字符的参数值,需要在前端对其进行编码才能传递到后端,常见的编码方式有encodeURIComponent(用于URL码)和btoa(用于Base64编码)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值