有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Spring Boot中不解码@RequestParam设置的字符串?

我的控制器有如下方法:

@ResponseBody
public String test(@RequestParam("r") String r){
String requestURI = request.getQueryString();
// What I want: abc+def%2Cfjg
System.out.println(requestURI.split("=")[1]);
// This is not what I want: abc def,fjg
System.out.println(r);
}

我怎样才能让Spring boot知道RequestParameter不能被解码?i、 e未将+转换为空格,%2C转换为逗号等


共 (1) 个答案

  1. # 1 楼答案

    使用解码方法,您可以解码您的url

    private String decode(String value) {
        String decoded 
          = URLDecoder.decode(value, StandardCharsets.UTF_8.toString());
        return decoded;
    }
    

    如果您想对其进行编码,则使用encode方法

    private String encode(String value) {
        String encoded = 
          URLEncoder.encode(value, StandardCharsets.UTF_8.toString());
        return encoded;
    }