URL Encoder / Decoder / URL 인코더·디코더

이 도구에 대하여

URL에 사용할 수 없는 문자(전각, 공백, 기호)를 URL 인코딩하거나 디코딩한다. encodeURIComponent(부분용)와 encodeURI(URL 전체용)를 전환할 수 있고, "공백을 +로" 옵션도 제공한다. 모든 처리는 브라우저 안에서만 이루어지며 데이터는 전송되지 않는다.

URL 인코딩 / 디코딩

→ 쿼리 값·경로 조각 등 "URL 부품"까지 인코딩한다
→ 이미 URL로 성립한 전체를 망가뜨리지 않도록 최소한만 인코딩한다

모드 차이(자세한 설명)
  • encodeURIComponent는 URL의 부품(예: 쿼리 값, 경로 한 구간, 프래그먼트 값 등)에 최적이다. -_.!~*'() 외에는 거의 모두 인코딩한다(: / ? # & = 등도 변환).
  • encodeURI는 URL 전체에 사용하며, :/?#&=,+;$처럼 URL 문법에서 의미 있는 기호는 남겨 두기 때문에 프로토콜이나 경로 구분이 망가지지 않는다.
  • 폼 호환이 필요하면 "공백을 +"를 켜면 된다(디코딩 시에는 + → 공백으로 처리).
// 예: "a/b?x=1 2" 인코딩
encodeURIComponent("a/b?x=1 2")
// → "a%2Fb%3Fx%3D1%202"

encodeURI("https://ex.com/a/b?x=1 2")
// → "https://ex.com/a/b?x=1%202"   (:/?= 는 유지되고 공백만 %20)

보충·주의

  • encodeURIComponent는 "부품"용, encodeURI는 "URL 전체"용이다.
  • +는 폼 호환(공백)으로 취급되는 경우가 있다(본 도구에서는 디코딩 시 공백으로 정규화한다).
  • UTF-8 다중 바이트 문자 때문에 변환 결과 길이가 크게 바뀔 수 있다.