URL 인코더/디코더

관련 도구

URL 인코딩이란?

URL 인코딩(Percent-encoding)은 URL에서 사용할 수 없는 문자를 %XX 형식으로 변환하는 방식입니다. 공백, 한글, 특수 문자 등을 URL에 안전하게 포함시킬 때 사용합니다.

인코딩 규칙

문자 종류에 따라 인코딩 결과가 다릅니다. 영문자와 숫자는 변환 없이 그대로 유지되지만, 그 외 문자는 UTF-8 바이트값을 %XX 형식으로 표현합니다.

문자 종류 처리 방식 예시
영문자 / 숫자 변환 없이 그대로 abc123abc123
공백 %20 (또는 폼에서 +) hello worldhello%20world
한글 UTF-8 3바이트 → %XX%XX%XX %EA%B0%80
특수문자 %XX 형식으로 변환 &%26, =%3D

encodeURI와 encodeURIComponent의 차이

JavaScript에는 URL 인코딩 함수가 두 가지 있고, 용도가 다릅니다. 이 도구는 파라미터 값 변환에 적합한 encodeURIComponent 방식을 사용합니다.

  • encodeURIComponent — 쿼리 파라미터의 값처럼 URL의 "일부"를 넣을 때 사용합니다. / ? & =까지 모두 변환해 값이 URL 구조를 깨뜨리지 않게 합니다.
  • encodeURI — 완성된 URL "전체"를 인코딩할 때 사용합니다. / ? & = 같은 구조 문자는 그대로 두고 공백·한글만 변환합니다.

검색어처럼 &가 들어갈 수 있는 값을 encodeURI로 처리하면 파라미터 구분자와 섞여 버그가 됩니다 — 값에는 항상 encodeURIComponent를 쓰는 것이 안전합니다.

자주 묻는 질문

encodeURI와 encodeURIComponent 중 무엇을 쓰나요?
이 도구는 파라미터 "값"에 적합한 encodeURIComponent를 사용합니다. / ? & = 까지 변환해 값이 URL 구조를 깨뜨리지 않게 합니다.
공백은 %20으로 바뀌나요, +로 바뀌나요?
이 도구는 %20으로 인코딩합니다. +는 폼 전송(application/x-www-form-urlencoded)에서 공백을 나타내는 별도 방식입니다.
한글은 어떻게 인코딩되나요?
UTF-8 바이트로 변환된 뒤 각 바이트가 %XX로 표현됩니다. 예를 들어 "가"는 %EA%B0%80이 됩니다.
입력값이 서버로 전송되나요?
아니요. 브라우저 안에서 변환되며 외부로 전송되지 않습니다.