본 사이트는 파트너스 활동으로 수수료를 받을 수 있으며, 서버 운영과 무료 앱 개발에 사용됩니다. 본 사이트는 파트너스 활동으로 수수료를 받을 수 있으며
서버 운영과 무료 앱 개발에 사용됩니다.
🔗

URL 인코더/디코더

URL 안전 문자열로 변환하거나 원본으로 복원

URL
인코딩

URL 인코더 / 디코더

100% 로컬 처리

원본 텍스트/URL

0

인코딩된 결과

URL 인코딩 참조 테이블

문자인코딩설명복사
%20공백
!%21느낌표
"%22큰따옴표
#%23해시/샵
$%24달러
%%25퍼센트
&%26앰퍼샌드
'%27작은따옴표
(%28왼쪽 괄호
)%29오른쪽 괄호
*%2A별표
+%2B더하기
,%2C쉼표
/%2F슬래시
:%3A콜론
;%3B세미콜론
=%3D등호
?%3F물음표
@%40골뱅이
[%5B왼쪽 대괄호
]%5D오른쪽 대괄호

URL 인코딩 (Percent-Encoding) 완벽 가이드

URL 인코딩은 URL에서 특수 문자를 안전하게 전송하기 위해 문자를 퍼센트(%) 기호와 16진수 값으로 변환하는 방식입니다. RFC 3986에 정의되어 있으며, "퍼센트 인코딩(Percent-Encoding)"이라고도 불립니다.

이 도구는 텍스트/URL 인코딩·디코딩, URL 파싱, URL 빌더, 일괄 처리 등 URL 작업에 필요한 모든 기능을 제공합니다. 모든 처리는 브라우저에서 로컬로 수행되어 개인정보가 완벽하게 보호됩니다.

URL 인코딩이 필요한 이유

안전하고 올바른 데이터 전송을 위해

URL은 ASCII 문자만 사용할 수 있으며, 일부 문자는 특별한 의미를 가집니다. 한글, 공백, 특수문자 등을 URL에 포함하려면 반드시 인코딩이 필요합니다.

인코딩 없이 사용하면

  • • URL이 깨지거나 잘림
  • • 서버가 파라미터를 잘못 해석
  • • 보안 취약점 발생 가능
  • • 링크 공유 시 문제 발생

인코딩하면

  • • 모든 문자를 안전하게 전송
  • • 서버가 정확히 해석
  • • 국제화(i18n) 지원
  • • 표준 준수로 호환성 확보

예시 비교

✗ 원본: https://example.com/search?q=한글 검색어&tag=테스트
✓ 인코딩: https://example.com/search?q=%ED%95%9C%EA%B8%80%20%EA%B2%80%EC%83%89%EC%96%B4&tag=%ED%85%8C%EC%8A%A4%ED%8A%B8

URL 인코딩 작동 원리

문자를 퍼센트 코드로 변환하는 방법

URL 인코딩은 문자를 UTF-8로 인코딩한 후 각 바이트를 %XX 형식의 16진수로 변환합니다.

인코딩 과정 예시: "한"

1. 원본 문자:
2. UTF-8 바이트:ED 95 9C (3바이트)
3. 퍼센트 인코딩:%ED%95%9C
A
ASCII 안전 문자
인코딩 불필요
&
예약 문자
%26
유니코드 문자
%ED%95%9C

URL 예약 문자

특별한 의미를 가진 문자들

URL에서 특별한 구문 역할을 하는 문자들입니다. 데이터로 사용하려면 인코딩해야 합니다.

일반 구분자 (gen-delims)

:
프로토콜/포트 구분
/
경로 구분
?
쿼리 시작
#
프래그먼트 시작
[
IPv6 주소
]
IPv6 주소
@
사용자 정보

서브 구분자 (sub-delims)

!
$
&
파라미터 구분
'
(
)
*
+
공백 (form)
,
;
=
키=값 구분

인코딩 함수 비교

encodeURI vs encodeURIComponent

함수용도인코딩하지 않는 문자
encodeURI()전체 URL 인코딩A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; / ? : @ & = + $ , #
encodeURIComponent()쿼리 파라미터 인코딩A-Z a-z 0-9 - _ . ! ~ * ' ( )
escape() ❌사용 금지 (deprecated)-

권장 사용법

  • • 쿼리 파라미터 값 인코딩: encodeURIComponent()
  • • 전체 URL 인코딩 (구조 유지): encodeURI()
  • • URL 객체 사용 (권장): new URL()

URL 구조

URL의 각 구성 요소 이해

  https://user:pass@www.example.com:8080/path/to/page?query=value#section
  ─────   ─────────  ───────────────  ────  ────────────  ───────────  ───────
    │         │              │          │        │             │          │
 protocol  userinfo       host       port     path         query       hash
Protocol
http, https, ftp 등
https://
Host
도메인 또는 IP 주소
www.example.com
Port
포트 번호 (선택)
:8080
Path
리소스 경로
/api/users
Query
쿼리 파라미터
?id=1&name=test
Hash
앵커/프래그먼트
#section1

실무 사용 사례

URL 인코딩이 필요한 상황

검색 쿼리 전송

검색어에 공백, 특수문자, 한글이 포함된 경우 인코딩 필수

?q=%EA%B2%80%EC%83%89%EC%96%B4

API 호출

RESTful API 경로나 쿼리 파라미터에 동적 값 포함 시

/api/users/John%20Doe

JSON/XML 데이터 전송

URL 파라미터로 JSON 데이터를 전송할 때

?data=%7B%22key%22%3A%22value%22%7D

리다이렉트 URL

OAuth 콜백, 로그인 후 리다이렉트 URL 파라미터

?redirect=https%3A%2F%2Fexample.com

베스트 프랙티스

올바른 URL 인코딩 사용법

권장 사항

  • • 쿼리 파라미터 값은 항상 인코딩
  • • URL 객체 API 사용 권장
  • • 사용자 입력은 무조건 인코딩
  • • 서버/클라이언트 인코딩 방식 통일
  • • 이중 인코딩 주의

피해야 할 사항

  • • escape() 함수 사용 (deprecated)
  • • 전체 URL에 encodeURIComponent 적용
  • • 인코딩 없이 특수문자 포함 URL 사용
  • • 서버에서 이미 디코딩된 값을 재디코딩

자주 묻는 질문 (FAQ)

URL 인코딩 관련 궁금증 해결

Q: encodeURI와 encodeURIComponent의 차이점은?

encodeURI는 URL 구조 문자(/, ?, #, & 등)를 유지하고 나머지만 인코딩합니다. encodeURIComponent는 거의 모든 특수문자를 인코딩하므로 쿼리 파라미터 값에 적합합니다.

Q: 공백을 %20으로 인코딩해야 하나요, +로 해야 하나요?

RFC 3986 표준에서는 %20을 사용합니다. +는 application/x-www-form-urlencoded (HTML 폼)에서만 사용됩니다. 일반적으로 %20을 권장합니다.

Q: 이중 인코딩이란 무엇인가요?

이미 인코딩된 문자열을 다시 인코딩하는 것입니다. 예: %20 → %2520. 서버에서 디코딩이 두 번 필요해지므로 문제가 됩니다.

Q: 브라우저가 자동으로 인코딩하는데 왜 수동으로 해야 하나요?

브라우저는 주소창 입력 시 자동 인코딩하지만, JavaScript에서 동적으로 URL을 생성할 때는 수동 인코딩이 필요합니다. API 호출 시에도 마찬가지입니다.

Q: URL에 한글을 안전하게 사용하려면?

encodeURIComponent()를 사용하면 한글이 UTF-8 바이트로 변환된 후 퍼센트 인코딩됩니다. 디코딩 시 decodeURIComponent()를 사용하면 원래 한글로 복원됩니다.

URL 인코딩 마스터가 되셨습니다!

이제 URL 인코딩의 원리부터 실무 활용까지 모두 익히셨습니다. 위의 도구를 사용하여 URL 인코딩/디코딩, 파싱, 빌드, 일괄 처리 등 다양한 작업을 수행해보세요. API 개발, 웹 애플리케이션, 링크 공유 등 어떤 작업이든 효율적으로 처리할 수 있습니다.

#URL#인코딩#

URL 인코더/디코더

URL 안전 문자열로 변환하거나 원본으로 복원

모든 도구를 한 곳에서 © 2025 큐레이터 단비. All right reserved.