본문으로 건너뛰기
개발자

URL 인코더/디코더

URL에 사용할 수 있도록 특수문자를 인코딩하거나 인코딩된 URL을 디코딩합니다. 한글, 공백, 특수문자 등을 안전하게 URL에 포함시킬 수 있습니다.

최종 수정 · 운영 Fixit Dev

URL 인코더 · 디코더

한글·공백·특수문자를 %XX 퍼센트 인코딩으로 바꾸거나 되돌립니다.

결과를 입력으로

입력하면 바로 변환됩니다 · Ctrl/⌘+Enter 즉시 변환

자주 사용되는 인코딩 예시

문자encodeURIComponentencodeURI
공백%20%20
&%26&
=%3D=
?%3F?
#%23#
/%2F/
:%3A:
@%40@
+%2B+
%%25%25
한글 "가"%EA%B0%80%EA%B0%80

encodeURI 는 URL 구조 문자(: / ? # & = @ +)를 그대로 두고, encodeURIComponent 는 모두 %XX 로 바꿉니다. 쿼리 파라미터 값에는 encodeURIComponent 를 쓰세요.

URL 인코더/디코더 사용법

  1. 1인코딩 또는 디코딩 모드를 선택합니다.
  2. 2인코딩 방식을 선택합니다 (encodeURIComponent: 파라미터 값 / encodeURI: 전체 URL).
  3. 3텍스트를 입력란에 입력하거나 붙여넣습니다.
  4. 4입력과 동시에 결과가 표시됩니다. 결과 옆 복사 버튼으로 복사합니다.

입력과 결과 예시

검색어 안의 &를 값으로 보존

입력·설정
A&B
설정: 인코딩, encodeURIComponent
결과
A%26B

검색 주소의 q 값에 A&B를 그대로 붙이면 &가 다음 파라미터를 구분합니다. 인코딩한 값을 붙이면 ?q=A%26B처럼 검색어 하나로 전달할 수 있습니다.

전체 주소의 구조를 유지

입력·설정
https://example.com/search?q=가 나
설정: 인코딩, encodeURI
결과
https://example.com/search?q=%EA%B0%80%20%EB%82%98

콜론·슬래시·물음표·등호는 유지되고 한글·공백이 변환됩니다. 값 안에 &나 #가 있다면 전체 URL 변환에 앞서 그 값만 encodeURIComponent로 인코딩해야 합니다.

URL 인코더/디코더 활용 팁

  • 1쿼리 파라미터 값에는 encodeURIComponent를 사용하세요.
  • 2전체 URL을 인코딩할 때는 encodeURI를 사용하세요.
  • 3이미 인코딩된 문자열을 다시 인코딩하면 이중 인코딩이 발생합니다.
  • 4% 기호는 %25로 인코딩되므로 주의하세요.

이 도구의 encodeURIComponent 결과

  • •공백 → %20, + → %2B, & → %26, # → %23, % → %25
  • •가 → %EA%B0%80: UTF-8의 각 바이트를 %와 16진수 두 자리로 표시합니다.
  • •영문·숫자와 - _ . ! ~ * ' ( )는 그대로 둡니다.
  • •decodeURI는 URL 구조를 보존하기 위해 %26 같은 일부 예약 문자 이스케이프를 그대로 둡니다. 값 하나를 복원할 때는 decodeURIComponent를 고르세요.

디코딩 오류를 해결하는 순서

% 뒤에는 16진수 두 자리가 필요합니다. %2나 %GG는 형식 오류이고, %EA처럼 한글의 일부 바이트만 있으면 UTF-8 오류가 납니다. 주소가 중간에 잘렸는지 먼저 확인하세요. 퍼센트 기호 자체를 전달하려던 경우에는 %25로 인코딩한 값을 사용합니다.

참고 자료

URL 인코더/디코더 자주 묻는 질문

두 인코딩 방식 중 무엇을 골라야 하나요?

검색어·파일명·쿼리 값 하나를 변환하려면 encodeURIComponent를 고르세요. 구조가 이미 완성된 URL에서 한글·공백을 변환하려면 encodeURI를 사용합니다.

느낌표나 작은따옴표는 왜 그대로인가요?

JavaScript encodeURIComponent는 ! ' ( ) *를 그대로 둡니다. 이 도구도 같은 동작을 따릅니다. 모든 RFC 3986 예약 문자를 인코딩하는 엄격한 모드와는 다릅니다.

+를 디코딩했는데 공백으로 바뀌지 않아요.

decodeURIComponent는 +를 그대로 둡니다. HTML 폼의 application/x-www-form-urlencoded 규칙에서는 +가 공백을 뜻하지만 이 도구는 폼 파서가 아닙니다. 실제 더하기 기호는 %2B로 표현합니다.

%2520은 왜 공백이 되지 않나요?

한 번 디코딩하면 %20이 됩니다. % 기호가 %25로 이중 인코딩된 상태이기 때문입니다. 원본이 몇 번 인코딩됐는지 확인한 뒤 필요한 횟수만 변환하세요.

함께 쓰는 도구