본문 바로가기
카테고리 없음

URLEncoder

by 찐세 2021. 7. 1.

 

URLEncoder

 

 

@PostMapping("/new-post")
    public String newPostSubmit(@CurrentUser Account account, @Valid PostForm postForm, Errors errors, Model model){

        if(errors.hasErrors()){
            model.addAttribute(account);
            return "post/form";
        }
        
        Post newPost = postService.createNewPost(account, modelMapper.map(postForm, Post.class));
        return "redirect:/post/"+ URLEncoder.encode(newPost.getPath(), StandardCharsets.UTF_8);
    }

 

새로운 게시글을 생성하고 나서 해당 게시글 페이지로 리다이렉트 해주는 코드이다.

 

새로운 게시글의 URL을 살펴보면 게시글을 식별하는 path 값을 URLEncoder를 통해서 인코딩을 하는 것을 알 수 있다.

 

결론부터 말하자면 path값은 한글이 올 수도 있기 때문에 이를 URL로 사용하기 위해서 인코딩을 해주는 것이다.

 

URL에는 여러가지 규칙이 존재하고, 이 규칙에 사용되는 문자들이 정해져 있기 때문에 URL에 사용되는 문자는 모두 이 규칙에 맞게 변환이 되어야한다.

그렇기 때문에 한글은 아스키 코드 값으로 변경이 되어야 하는 것이다.

 

간혹 블로그를 보다가도 티스토리나, velog에서 게시물의 주소에 한글이 들어가는 경우를 본 적이 있다. 

 

이 경우에도 주소에 한글이 들어가지만, 해당 주소를 복사해서 출력해보면 한글 부분이 아스키 코드 값으로 인코딩이 되어 있는 것을 확인할 수 있다.

 

 

 

 

 

 

 

 

 

REFERENCE


https://dololak.tistory.com/19