SpringBoot 中使用 @PathVariable 注解无法接收中文字符串,英文或数字可以接收,是什么原因?

SpringBoot 中使用 @PathVariable 注解无法接收中文字符串,英文或数字可以接收,是什么原因?

1、Controller 如下所示:

@GetMapping("/user/{username}")
    public Result getUserByName(@PathVariable("username") String username){
        User user = userService.getUserByUsername(username);
        if(!ObjectUtils.isEmpty(user)){
            return Result.success();
        }
        return Result.fail();
    }

2、前端发送不含中文的参数,可以正常响应

img

3、前端发送含中文的参数,响应失败

img

中文去掉双引号看看

在URL中中文会被编码调,比如“百度” 编码后的值是:%E7%99%BE%E5%BA%A6

img

img