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