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 다중 바이트 문자 때문에 변환 결과 길이가 크게 바뀔 수 있다.