Language/JSP
[URI] 한국어가 어떻게 URL에서 Percent-encoding 될까?
적외선
2019. 9. 11. 14:59
환경 및 선수조건
- Percent-encoding의 개념
- Character Set이 무엇인지
Character Set(Character encoding)이란?
- Character Set(문자셋) 그리고 Character encoding(문자 인코딩)은 같은 말로 쉽게 말해서 어떤 인코딩 시스템에 의해서 존재하는 문자들을 표현하려는 방법을 의미한다.
- ASCII나 Unicode가 문자 인코딩들의 대표적으로 알려진 예시입니다.
Percent-encoding이란?
- Percent-encoding이란 URI 혹은 URL에 문자를 표현하는 인코딩 방식으로 RFC 3986에 따라서 알파벳이나 숫자 등 몇몇 문자를 제외한 문자들에 대해서 옥텟 값으로 묶어서 16진수 값으로 코딩하는 방식
- 예시 : "/internet url" -> "internet%20url"
Percent-encoding의 방법
- RFC3986문서를 찾아보면 정해진 몇몇개의 문자들을 제외하고는 octet(8bit가 한데 모인 것)으로 인코딩한 후에 %를 붙여서 인코딩 한다고 나와있다.
- 여기서 한국어는 octet(8bit가 한데 모인 것)으로 변형되어서 표시되며 Unicode에 따라서 UTF-8 방식으로 바뀌어서 인코딩 되게 됩니다.
즉, 다시 정리하면
- “한국어” -(UTF-8에 따라서)-> “코드화된 한국어” -(1바이트마다 %를 붙임)-> “퍼센트 인코딩된 한국어”
- 예시 : “각” -(UTF-8에 따라서)-> “0xEA 0xB0 0x81” -(1바이트마다 %를 붙임)-> “%EA%B0%81”
예시
- “각”의 경우
/각 => /%EA%B0%81
- “선”의 경우
/선 => /%EC%84%A0
- “꿳”의 경우
/꿳 => /%EA%BF%B3
참고자료
- https://tools.ietf.org/html/rfc3986
- https://ko.wikipedia.org/wiki/퍼센트_인코딩
- https://en.wikipedia.org/wiki/Character_encoding#Terminology
- https://www.url-encode-decode.com/
참조 - https://twpower.github.io/123-how-to-encode-korean-to-percent-encoding