[URI] 한국어가 어떻게 URL에서 Percent-encoding 될까?

한국어가 URL에서 어떻게 표현되는지 알아보자


환경 및 선수조건

  • Percent-encoding의 개념
  • Character Set이 무엇인지


Character Set(Character encoding)이란?

  • Character Set(문자셋) 그리고 Character encoding(문자 인코딩)은 같은 말로 쉽게 말해서 어떤 인코딩 시스템에 의해서 존재하는 문자들을 표현하려는 방법을 의미한다.
  • ASCIIUnicode가 문자 인코딩들의 대표적으로 알려진 예시입니다.


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


참고자료