[URI] 한국어가 어떻게 URL에서 Percent-encoding 될까?
한국어가 URL에서 어떻게 표현되는지 알아보자
환경 및 선수조건
- 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