URL 인코더/디코더이란?
URL 인코더/디코더는 URL의 특수 문자를 퍼센트 인코딩 형식으로 변환하거나 원래대로 되돌립니다. 쿼리 문자열, API 파라미터, 공백이나 특수 문자가 포함된 URL을 다룰 때 유용합니다.
네 가지 인코딩 모드를 제공합니다. Component 모드(encodeURIComponent)는 슬래시와 & 등 모든 예약 문자를 이스케이프해 쿼리 값 안쪽에 적합합니다. Full URL 모드(encodeURI)는 구조 문자를 그대로 두어 주소 전체가 여전히 파싱되게 합니다. 폼 데이터 모드는 application/x-www-form-urlencoded 전송을 위해 공백을 +로 인코딩합니다. RFC 3986 엄격 모드는 한 걸음 더 나아가 encodeURIComponent가 건너뛰는 하위 구분자 !'()* 까지 이스케이프하므로, 표준을 따르는 어떤 URL 안에도 안전하게 넣을 수 있습니다. Auto-detect는 %XX 시퀀스 유무를 보고 방향을 자동으로 고르고, 실시간을 켜면 입력하는 즉시 변환하며, 재귀 디코딩을 켜면 이중·삼중 인코딩을 남김없이 벗겨내고, 비교 패널은 같은 입력을 네 모드로 한꺼번에 인코딩해 보여 줍니다.
사용 방법
- 입력 필드에 URL 또는 텍스트 문자열을 붙여넣으세요.
- 인코딩 버튼을 클릭하여 특수 문자를 퍼센트 인코딩 형식으로 변환하거나, 디코딩 버튼으로 원래대로 되돌리세요.
- 결과를 클립보드에 복사하거나 스왑 버튼으로 입력과 출력을 교체하세요.
사용 시기
- 쿼리 문자열을 직접 만들 때 공백, &, = 등을 안전하게 이스케이프.
- 퍼센트 인코딩된 서버 로그를 읽기 좋은 텍스트로 복원.
- ASCII 외 문자가 포함된 외국어 URL을 일반 텍스트 메일에 깨뜨리지 않고 붙여 넣기.
결과
개발자가 쿼리 문자열 파라미터에 사용하기 위해 hello world&foo=bar를 hello%20world%26foo%3Dbar로 인코딩합니다.
자주 묻는 질문
- encodeURI와 encodeURIComponent는 어떻게 다른가요?
- encodeURI는 구조 문자인 /, ?, &, =을 건드리지 않아 URL 전체가 계속 동작합니다. encodeURIComponent는 이 문자들도 모두 이스케이프하므로, 쿼리의 ? 뒤에 들어가는 단일 매개변수 값으로 적합합니다.
- 왜 디코딩한 문자열에 아직 %20이 남아 있나요?
- 원문이 이중 인코딩된 경우(한 번 디코딩해도 다시 인코딩된 결과가 나와 한 번 더 디코딩해야 함)거나, +가 공백을 의미하는 폼 인코딩일 수 있습니다. 한 번 더 디코딩하거나, 디코딩 전에 +를 공백으로 바꿔 보세요.
- URL에 인코딩 없이 그대로 넣을 수 있는 문자에는 무엇이 있나요?
- 비예약 문자입니다. A–Z, a–z, 0–9 그리고 하이픈, 밑줄, 점, 물결표 네 가지 기호. 그 밖의 모든 것, 공백·비 ASCII 글자·해당 위치에서 구문상 의미가 없는 예약 문자는 퍼센트 인코딩이 필요합니다.
- 같은 문자열을 두 번 인코딩하면 망가지나요?
- 망가집니다. 이중 인코딩은 모든 %를 %25로 바꾸므로 원본을 되살리려면 디코딩을 두 번 해야 합니다. 이미 인코딩되었을 수 있는 다른 시스템의 값을 이어 붙인다면 먼저 한 번 디코딩하거나 상태 플래그를 함께 다루세요.
- 도구가 한국어·아랍어 같은 유니코드 문자를 지원하나요?
- 지원합니다. 브라우저 내장 encodeURIComponent는 임의 문자의 UTF-8 바이트 시퀀스를 만든 뒤 각 바이트를 퍼센트로 인코딩합니다. 디코딩은 역방향이라 'café'는 언어와 무관하게 'caf%C3%A9'로 왕복합니다.