项目中使用@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编码)。