URL 인코더/디코더
URL 안전 문자열로 변환하거나 원본으로 복원
URL 인코더 / 디코더
원본 텍스트/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 인코딩 완벽 가이드 목차
URL 인코딩 (Percent-Encoding) 완벽 가이드
URL 인코딩은 URL에서 특수 문자를 안전하게 전송하기 위해 문자를 퍼센트(%) 기호와 16진수 값으로 변환하는 방식입니다. RFC 3986에 정의되어 있으며, "퍼센트 인코딩(Percent-Encoding)"이라고도 불립니다.
이 도구는 텍스트/URL 인코딩·디코딩, URL 파싱, URL 빌더, 일괄 처리 등 URL 작업에 필요한 모든 기능을 제공합니다. 모든 처리는 브라우저에서 로컬로 수행되어 개인정보가 완벽하게 보호됩니다.
URL 인코딩이 필요한 이유
안전하고 올바른 데이터 전송을 위해
URL은 ASCII 문자만 사용할 수 있으며, 일부 문자는 특별한 의미를 가집니다. 한글, 공백, 특수문자 등을 URL에 포함하려면 반드시 인코딩이 필요합니다.
인코딩 없이 사용하면
- • URL이 깨지거나 잘림
- • 서버가 파라미터를 잘못 해석
- • 보안 취약점 발생 가능
- • 링크 공유 시 문제 발생
인코딩하면
- • 모든 문자를 안전하게 전송
- • 서버가 정확히 해석
- • 국제화(i18n) 지원
- • 표준 준수로 호환성 확보
예시 비교
URL 인코딩 작동 원리
문자를 퍼센트 코드로 변환하는 방법
URL 인코딩은 문자를 UTF-8로 인코딩한 후 각 바이트를 %XX 형식의 16진수로 변환합니다.
인코딩 과정 예시: "한"
URL 예약 문자
특별한 의미를 가진 문자들
URL에서 특별한 구문 역할을 하는 문자들입니다. 데이터로 사용하려면 인코딩해야 합니다.
일반 구분자 (gen-delims)
서브 구분자 (sub-delims)
인코딩 함수 비교
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 hashhttps://www.example.com:8080/api/users?id=1&name=test#section1실무 사용 사례
URL 인코딩이 필요한 상황
검색 쿼리 전송
검색어에 공백, 특수문자, 한글이 포함된 경우 인코딩 필수
?q=%EA%B2%80%EC%83%89%EC%96%B4API 호출
RESTful API 경로나 쿼리 파라미터에 동적 값 포함 시
/api/users/John%20DoeJSON/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 개발, 웹 애플리케이션, 링크 공유 등 어떤 작업이든 효율적으로 처리할 수 있습니다.