URL에 포함된 non-ASCII문자를 문자 코드(16진수) 문자열로 변환
non-ASCII문자 ---->ASCII코드(문자코드: 16진수의 문자열)
non-ASCII문자를 ASCII 문자로 바꾼다.
그 이유는 해당 서버가 어떤 OS, 언어를 사용하는지 모르기 때문이다.
ASCII 문자(0-9,A-Z,a-z,*,- 등) 국가별 인코딩 중 공통으로 가지고 있다.
그래서 모든 언어에 공통적으로 들어 있는 ASCII문자로 바꿔준다.
따라서, URL에 포함된 non-ASCII문자를 문자 코드(16진수) 문자열로 변환한다.
구민수 ----> URLEncoder.encode() --> %EA%B5%AC%EB%AF%BC
구민수 <--- URLDecoder.decode() <-- %EA%B5%AC%EB%AF%BC
예시)
"구민수"라는 한글을 get 방식으로 보낼때는 브라우저가 URL을 UTF-8, ASCII 코드로 자동으로 바꿔준다.
그러나 post 방식으로 요청을 보낼때에는 브라우저에서 자동으로 ASCII코드로 바꿔주지 않는다.
그래서 값을 호출하기전에
request.setCharacterEncoding("UTF-8") // 설정해주어야함.
String name = request.getParameter("name")
만약 redirect로 요청을 다시 보낼 경우..
String msg=URLEncoder.encode("가나다라","utf-8");
return "redirect:/jojo?msg="+msg
spring에서는 character 인코딩 필터를 제공함.
'spring' 카테고리의 다른 글
Spring DI(2) (0) | 2023.07.04 |
---|---|
Spring DI(1) (0) | 2023.07.02 |
HttpServletRequest 요청 값 받는 다양한 방법 (0) | 2023.02.01 |
Http Requset /Response (0) | 2023.01.16 |
스프링 @Controller 사용법 (0) | 2023.01.15 |
댓글