URL escape code, 퍼센트(Percent, %)/유니코드(Unicode) URL encoding 이란? 개념정리



URL escape code, 퍼센트(Percent, %)/유니코드(Unicode) URL encoding 에 대하여 궁금한 점이 생겨 여러 사이트를 돌아다니면서 내용을 정리해보았습니다. 나무위키에 좋은 예시가 나와 있어, 특히 많이 참고하게 되었습니다.

1. Percent(%) Encoding

URL 에 공백이나 다른 문자들이 있는 경우에 어떻게 표기 될까요? URL 안의 다양한 문자들을 관리하기 위하여 encoding 을 해주는 경우가 있습니다.

⬇ URL 인코딩 ⬇
https://namu.wiki/w/URL%20escape%20code

⬇ URL 디코딩 ⬇
https://namu.wiki/w/URL escape code

아래의 표는 ASCII 코드 문자를 URL encoding한 것입니다.

글자 ASCII 글자 ASCII 글자 ASCII 글자 ASCII 글자 ASCII  
space 공백 %20 ( %28 : %3A [ %5B ` %60  
! %21 ) %29 ; %3B |%5C { %7B    
%22 * %2A < %3C ] %5D     %7C
# %23 + %2B = %3D ^ %5E } %7D  
$ %24 , %2C > %3E _ %5F ~ %7E  
% %25 - %2D ? %3F . . . .  
& %26 . %2E @ %40 . . . .  
%27 / %2F . . . . . .  

percent encoding은 어떠한 문자 코드에도 대응시킬 수 있으나, 점점 국제 표준인 UTF-8에 대응시키는 것으로 통일되는 추세라고 합니다.

2. Unicode Encoding

유니코드 문자의 경우 일반적으로 UTF-8 방식을 따릅니다. (ASCII 문자는 UTF-8과 호환이 가능하다고 합니다.) UTF-8은 가변길이 유니코드 인코딩 방식으로 표현하는 언어에 따라 할당되는 길이가 다릅니다. 한글은 UTF-8 기준으로 3바이트를 할당하기 때문에, 글자 하나당 %00 패턴이 세 번씩 나타납니다.

‘유니코드’, ‘나무위키’ 라는 글자의 경우 하기와 같이 표현할 수 있습니다.

⬇ URL 디코딩 ⬇
namu.wiki/w/유니코드

⬇ URL 인코딩 ⬇
namu.wiki/w/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C

⬇ '유니코드' 디코딩/인코딩 ⬇
%EC%9C%A0 = 유 (UTF-8: 0xEC 0x9C 0xA0)
%EB%8B%88 = 니 (UTF-8: 0xEB 0x8B 0x88)
%EC%BD%94 = 코 (UTF-8: 0xEC 0xBD 0x94)
%EB%93%9C = 드 (UTF-8: 0xEB 0x93 0x9C)

⬇ '나무위키' 디코딩/인코딩 ⬇
%EB%82%98 = 나 (UTF-8: 0xEB 0x82 0x98)
%EB%AC%B4 = 무 (UTF-8: 0xEB 0xAC 0xB4)
%EC%9C%84 = 위 (UTF-8: 0xEC 0x9C 0x84)
%ED%82%A4 = 키 (UTF-8: 0xED 0x82 0xA4)

reference

  • https://namu.wiki/w/URL%20escape%20code
  • https://namu.wiki/w/UTF-8