URL 디코더
퍼센트 인코딩된 URL을 다시 일반 텍스트로 바꾸세요.
브라우저에서 실행됩니다. 입력한 내용은 어디로도 전송되지 않습니다.
- 잘못된 입력에 명확한 오류
- +를 공백으로 처리하는 옵션
- 오프라인에서도 동작
URL 디코딩 방법
- 인코딩된 텍스트를 붙여넣으세요.
- 웹 폼에서 왔다면 '+를 공백으로 처리'를 켜세요.
- 디코딩된 결과를 복사하세요.
예시: 인코딩된 값을 입력, 디코딩된 값을 출력
| 인코딩됨 | 디코딩됨 |
|---|---|
| Hello%20World | Hello World |
| a%2Bb | a+b |
| caf%C3%A9 | café(악센트 포함) |
| a+b, +를 공백으로 처리 켜짐 | a b |
디코딩이 실패하는 이유
- 유효한 16진수 두 자리가 뒤따르지 않는 %. SAVE10%처럼 인코딩할 의도가 없었던 진짜 %인 경우가 많습니다.
- 서로 다른 두 출처에서 복사한 텍스트로, 일부는 이미 디코딩됐고 일부는 아직 퍼센트 인코딩된 채로 남은 경우.
- 유효한 UTF-8을 이루지 않는 인코딩된 바이트. 텍스트가 다른 문자셋으로 인코딩됐을 때 발생합니다.
인코딩된 URL은 어디서 오는가
- 브라우저 주소창. 입력하거나 붙여넣은 내용의 특수문자를 인코딩합니다.
- 버그 리포트나 지원 티켓에서 공유되는 서버 로그와 쿼리 문자열.
- 웹훅과 리다이렉트 링크. 신뢰하기 전에 디코딩해서 내용을 읽어볼 가치가 있습니다.
- 트래킹이나 분석용 링크. 디코딩하면 클릭 시 전송되는 정확한 매개변수와 값을 알 수 있습니다.
URL 디코딩 자주 묻는 질문
디코딩 오류가 나는 이유는 무엇인가요?
텍스트에 유효한 16진수 두 자리가 뒤따르지 않는 퍼센트 기호가 있다는 뜻으로, 올바르게 퍼센트 인코딩되지 않았음을 의미합니다.
'+를 공백으로 처리'는 항상 켜야 하나요?
텍스트가 폼이나 쿼리 문자열에서 왔고 실제 + 문자가 공백을 의미할 때만 켜세요. 경로나 base64 값에는 진짜 +가 들어 있을 수 있습니다.
이것은 URL 이스케이프 해제와 같은 것인가요?
네, URL, 쿼리 문자열, 폼 데이터에서 쓰이는 표준 퍼센트 인코딩을 되돌립니다.
URL 인코더와 같은 표준을 따르나요?
네. JavaScript 내장 함수 decodeURIComponent를 사용해 RFC 3986 퍼센트 인코딩을 되돌립니다.
제 텍스트에 인코딩되지 않은 진짜 퍼센트 기호가 있다면?
%뒤에 유효한 16진수 두 자리가 오지 않는 한 디코딩 오류가 납니다. 나머지 텍스트를 디코딩하기 전에 진짜 퍼센트 기호는 %25로 인코딩하세요.
쿼리 문자열이 있는 전체 URL도 디코딩할 수 있나요?
네, 주소 전체를 붙여넣으세요. 쿼리 문자열 안의 값을 포함해 퍼센트 인코딩됐던 모든 부분이 한 번에 디코딩됩니다.
어떤 JavaScript 함수를 감싸고 있나요?
decodeURIComponent에 + 문자를 공백으로 처리하는 옵션을 더한 것입니다. +가 공백을 뜻하는 것은 폼 인코딩된 데이터에서만 통하는 관례라 decodeURIComponent 단독으로는 이를 처리하지 않습니다.
디코딩이 일반 영문자와 숫자를 바꾸나요?
아니요. 애초에 인코딩되지 않았으므로 그대로 통과합니다.