ToolZip

URL 인코더·디코더 무료 — %20이 뭔지, URL 인코딩 완전 정리

toolzip 2026. 9. 18. 07:00

웹 주소(URL)를 복사하다 보면 한글이나 특수문자가 %EC%9D%B8%EC%BD%94%EB%94%A9 같은 알 수 없는 문자로 바뀐 것을 본 적 있으시죠? 또는 개발 중에 URL 파라미터에 특수문자를 넣었더니 오류가 났던 경험도 있을 것입니다. 오늘은 URL 인코딩이 무엇인지, 왜 필요한지, 그리고 쉽게 변환하는 방법을 알아보겠습니다.


URL이란 무엇인가?

URL(Uniform Resource Locator)은 인터넷 자원의 위치를 나타내는 주소입니다. 우리가 브라우저 주소창에 입력하는 https://www.example.com/path?query=value 형태입니다.

URL은 다음 구성요소로 이루어집니다.

https://www.example.com:443/path/to/page?name=값&id=123#section
├── 스킴(scheme): https
├── 호스트: www.example.com
├── 포트: 443
├── 경로(path): /path/to/page
├── 쿼리 파라미터: name=값&id=123
└── 프래그먼트: #section

URL 인코딩이란?

URL에는 사용할 수 있는 문자가 제한되어 있습니다. RFC 3986 표준에 따르면 URL에서 안전하게 사용할 수 있는 문자는 영문자, 숫자, 그리고 일부 특수문자(-_.~)뿐입니다.

한글, 한자, 공백, 특수문자 등 URL에서 허용되지 않는 문자는 퍼센트 인코딩(Percent Encoding) 방식으로 변환해야 합니다.

퍼센트 인코딩 방식:

  1. 문자를 UTF-8로 인코딩
  2. 각 바이트를 %XX 형식으로 표현 (XX는 16진수)
예시:
  공백 → %20 (또는 + )
  한글 '가' → %EA%B0%80
  & → %26
  = → %3D
  + → %2B
  # → %23

URL 인코딩이 필요한 이유

모호성 제거:
URL에서 &는 파라미터 구분자, =는 키-값 구분자로 사용됩니다. 파라미터 값 안에 이런 문자가 포함되면 URL 파서가 혼란을 겪습니다.

잘못된 예:
https://example.com/search?q=A&B=C&D

파서는 이를 어떻게 해석할까요?
q=A, B=C, D? → 의도와 다른 해석
q=A&B=C&D? → 불분명

국제 문자 지원:
HTTP 초기 표준은 ASCII 문자만 지원했습니다. 한글, 일본어, 아랍어 등을 URL에 포함하려면 인코딩이 필요합니다.

보안:
인코딩을 통해 SQL 인젝션, XSS 같은 보안 공격에 사용되는 특수문자를 무력화할 수 있습니다.


encodeURI vs encodeURIComponent

JavaScript를 사용한다면 두 함수의 차이를 알아야 합니다.

함수 인코딩하지 않는 문자 사용처
encodeURI() A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , # 전체 URL
encodeURIComponent() A-Z a-z 0-9 - _ . ! ~ * ' ( ) URL의 파라미터 값
// 전체 URL을 인코딩할 때
encodeURI('https://example.com/search?q=한글')
// → 'https://example.com/search?q=%ED%95%9C%EA%B8%80'
// & = ? : / 는 그대로 유지

// 파라미터 값만 인코딩할 때
encodeURIComponent('한글 & 영어')
// → '%ED%95%9C%EA%B8%80%20%26%20%EC%98%81%EC%96%B4'
// & = ? : / 모두 인코딩

자주 사용하는 특수문자 인코딩표

문자 인코딩 의미
공백 %20 또는 + 가장 흔한 케이스
& %26 파라미터 구분자
= %3D 키-값 구분자
+ %2B 덧셈, 양수 기호
# %23 앵커(fragment)
? %3F 쿼리 시작
/ %2F 경로 구분자
: %3A 스킴, 포트 구분자
@ %40 이메일, 사용자 정보
% %25 퍼센트 기호 자체

실제 사용 사례

카카오톡 공유 링크:
카카오 공유 API를 사용할 때 URL 파라미터에 한글이 포함되면 인코딩이 필요합니다.

구글 검색 URL:

https://www.google.com/search?q=%EC%9C%A0%ED%8B%B8%EB%A6%AC%ED%8B%B0
→ 검색어 "유틸리티"를 인코딩한 것

API 요청:
REST API에서 쿼리 파라미터에 특수문자가 포함될 때 인코딩이 필요합니다.


가장 쉬운 방법 — 브라우저에서 바로

 

ToolZip URL 인코더·디코더 바로가기 →

  • 🔄 인코딩·디코딩 모두 지원
  • 📝 쿼리 파라미터 파싱 기능
  • 💰 완전 무료, 회원가입 불필요

사용 방법

  1. toolzip.app/tools/url-encoder 접속
  2. 인코딩 또는 디코딩 선택
  3. 텍스트 입력
  4. 즉시 변환 결과 확인 및 복사

자주 묻는 질문

Q. %20과 +의 차이는 무엇인가요?

둘 다 공백을 나타내지만 쓰이는 곳이 다릅니다. %20은 URL 경로에서 사용하고, +는 주로 HTML 폼 데이터(application/x-www-form-urlencoded)에서 사용합니다.

Q. URL에 한글을 쓰면 왜 자동으로 변환되나요?

브라우저가 자동으로 URL 인코딩을 처리해줍니다. 주소창에 한글을 입력하면 브라우저가 자동으로 퍼센트 인코딩으로 변환합니다.

Q. 인코딩된 URL을 사람이 읽을 수 있게 바꾸려면?

디코딩 기능을 사용하면 %ED%95%9C%EA%B8%80 → 한글로 변환할 수 있습니다.


정리

  • ✅ URL 인코딩·디코딩 모두 지원
  • ✅ 쿼리 파라미터 파싱
  • ✅ 완전 무료, 회원가입 불필요

ToolZip URL 인코더·디코더 바로가기 →


관련 도구: Base64 변환기 · JSON 포맷터 · 해시 생성기