URL 인코딩된 문자열을 디코딩하는 방법
디코딩은 퍼센트 인코딩을 되돌리는 과정입니다. 각 %XX 시퀀스가 1바이트가 되고, 바이트들은 UTF-8 텍스트로 읽힙니다. '구성요소' 모드는 decodeURIComponent()를 사용하므로 원래 값이 그대로 복원됩니다.
계산 예시
여러 바이트로 된 UTF-8 시퀀스는 한 문자가 됩니다.
- 입력
- caf%C3%A9%20%26%20cr%C3%A8me
- 결과 ·
decodeURIComponent() - café & crème
%20은 공백이 되지만 +는 문자 그대로의 더하기 기호로 남습니다.
- 입력
- a+b%20c
- 결과 ·
decodeURIComponent() - a+b c
마지막 시퀀스에 16진수 한 자리가 빠져 있어 도구가 오류를 표시합니다.
- 입력
- %E0%A4%A
- 결과 ·
decodeURIComponent() - 인코딩된 URL이 유효하지 않습니다
빠진 자리를 채우면 세 바이트가 데바나가리 문자 하나로 디코딩됩니다.
- 입력
- %E0%A4%A4
- 결과 ·
decodeURIComponent() - त
도구의 처리 방식
- 각 %XX 시퀀스는 1바이트이며, 연속된 바이트는 함께 UTF-8로 디코딩되므로 %C3%A9는 é가 됩니다.
- 더하기 기호는 공백으로 처리되지 않으며 +는 그대로 +입니다. HTML 폼에서 온 텍스트라면 디코딩 전에 +를 %20으로 바꾸세요.
- 시퀀스가 불완전하거나 올바른 UTF-8이 아니면 입력 전체가 오류로 거부되며, 일부만 디코딩되지 않습니다.
- '전체 URL' 모드(decodeURI)는 %26, %2F, %3F 같은 예약 문자의 이스케이프를 인코딩된 상태로 두어 URL 구조를 바꾸지 않습니다.