</>DevTools

%20URL 인코드/디코드

URL 컴포넌트 인코딩 및 디코딩

URL 인코딩 완벽 가이드

URL 인코딩(Percent Encoding, RFC 3986)은 URL에 사용 불가능한 문자를 %XX 형식으로 변환하는 표준입니다. 한글·공백·특수문자가 포함된 URL을 안전하게 전송하기 위해 필수이며, 검색 쿼리, API 호출, 폼 제출 등 웹의 모든 영역에서 사용됩니다.

Percent Encoding 규칙

퍼센트 인코딩은 각 바이트를 %HH 형식(H=16진수)으로 표현합니다. 한글 한 글자는 UTF-8로 3바이트이므로 인코딩 시 9글자(%XX×3)가 됩니다. 예: '안녕' → %EC%95%88%EB%85%95

예약 문자 vs 안전 문자

  • 예약 문자: URL 구조에 특별한 의미를 가짐 (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) — encodeURI에서 보존
  • 안전 문자(Unreserved): 인코딩 없이 사용 가능 (A-Z a-z 0-9 - _ . ~)
  • 안전·예약 문자 외 모든 문자는 퍼센트 인코딩 필요

encodeURI vs encodeURIComponent 비교

문자encodeURIencodeURIComponent
공백%20%20
// (보존)%2F
?? (보존)%3F
&& (보존)%26
== (보존)%3D
## (보존)%23

→ 전체 URL은 encodeURI, 쿼리 값/경로 세그먼트는 encodeURIComponent(Component 옵션)

Base64 인코딩과의 차이

URL 인코딩(Percent Encoding)과 Base64는 목적이 다릅니다. URL 인코딩은 URL에 안전하지 않은 문자를 이스케이프하는 것이고, Base64는 바이너리 데이터를 ASCII 텍스트로 변환합니다. 이미지·파일을 URL에 포함할 때는 Base64를 쓰고, 쿼리 파라미터 값을 안전하게 전달할 때는 encodeURIComponent를 사용하세요.

3가지 모드

  • Encode: 텍스트 → URL 안전 형식 (공백 → %20)
  • Decode: %XX → 원래 문자 복원
  • Parse Query: URL 쿼리스트링을 JSON으로 파싱 (?a=1&b=2 → {"a":"1","b":"2"})

🔗관련 도구🔄 텍스트/데이터 변환