URL 인코드
WebToolBox에서 제공하는 무료 인코딩 도구인 URL 인코드 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.
입력
결과
URL 인코딩(퍼센트 인코딩, RFC 3986)의 원리와 필요성
URL 인코딩(퍼센트 인코딩, Percent-Encoding)은 인터넷 URL(URI) 체계에서 허용되지 않거나 특별한 의미를 갖는 문자들을 '%XX'(16진수 바이트 값) 형태로 변환하는 표준 통신 규약(RFC 3986)입니다.
URL 규격은 영문 대소문자(A-Z, a-z), 숫자(0-9), 그리고 비예약 문자(-, _, ., ~)만을 안전한 문자(Unreserved Characters)로 규정합니다.
따라서 공백, 한글, 한자, 일본어, 이모지 등의 비ASCII 문자와 URL 구문 예약어(?, &, =, /, #, :)를 쿼리 파라미터나 경로로 전달할 때는 데이터 유실이나 경로 왜곡을 방지하기 위해 반드시 퍼센트 인코딩을 거쳐야 합니다.
입출력 예시 (Examples)
| 입력 (Input) | 결과 (Output) | 설명 |
|---|---|---|
| 검색어 | %EA%B2%80%EC%83%89%EC%96%B4 | UTF-8 한글 3바이트 퍼센트 인코딩 |
| hello world | hello%20world | 공백 문자의 표준 URL 퍼센트 인코딩 |
| a=1&b=2 | a%3D1%26b%3D2 | URL 쿼리 파라미터 예약어 인코딩 |
| https://example.com | https%3A%2F%2Fexample.com | 전체 URL을 파라미터 값으로 넘길 때의 인코딩 |
JavaScript 인코딩 함수 비교 (encodeURI vs encodeURIComponent)
| 함수명 | 인코딩 대상 | 보존되는 예약어 (인코딩 제외) | 적합한 활용 상황 |
|---|---|---|---|
| encodeURI() | 완전한 전체 URL | ; , / ? : @ & = + $ # | 완전한 주소 링크 전체를 유효화할 때 |
| encodeURIComponent() | 개별 파라미터 값 | - _ . ! ~ * ' ( ) | 쿼리 스트링의 키나 값, 리다이렉트 URL 파라미터 |
| escape() (사용 금지) | ASCII 외 문자 | @ * _ + - . / | 비표준(Deprecated), 유니코드 미지원 |
온라인 URL 인코딩 도구 사용 방법
- 상단 입력 텍스트 영역에 URL로 변환하고자 하는 문자열을 입력하거나 붙여넣습니다.
- 입력 즉시 브라우저가 UTF-8 바이트 시퀀스를 기준으로 안전한 퍼센트 인코딩 문자열을 생성합니다.
- '복사' 버튼을 눌러 변환된 결과를 클립보드에 복사하고 브라우저 주소창이나 API 호출에 사용합니다.
- 복원 작업이 필요할 때는 상단 메뉴의 'URL 디코딩' 도구를 통해 원본으로 되돌릴 수 있습니다.
URL 인코딩 실무 팁 및 주의사항
- 이중 인코딩(Double Encoding) 주의: 이미 인코딩된 문자열을 다시 인코딩하면 '%' 기호 자체가 '%25'로 바뀌어 '%2520' 같은 잘못된 문자열이 생성됩니다.
- 공백 문자: URL 경로(Path)에서는 반드시 '%20'을 사용해야 하며, 폼 전송(application/x-www-form-urlencoded)에서는 '+'로 대체될 수 있습니다.
- 한글 인코딩 규격: 과거 EUC-KR 시절에는 한글이 2바이트로 인코딩되었으나, 현대 웹의 표준은 무조건 3바이트 UTF-8(%XX%XX%XX)입니다.
프로그래밍 언어별 사용 예제 (Code Examples)
// 쿼리 파라미터 값 인코딩 (권장)
const query = encodeURIComponent('검색어 & 결과');
console.log(query); // %EA%B2%80%EC%83%89%EC%96%B4%20%26%20%EA%B2%B0%EA%B3%BC
// 전체 URL 인코딩
const fullUrl = encodeURI('https://example.com/search?q=검색');import urllib.parse
query = "검색어 & 결과"
encoded = urllib.parse.quote(query)
print(encoded) # %EA%B2%80%EC%83%89%EC%96%B4%20%26%20%EA%B2%B0%EA%B3%BCFAQ (자주 묻는 질문)
- URL 인코딩과 퍼센트 인코딩은 같은 말인가요?
- 네, 동일합니다. 인코딩된 문자가 퍼센트 기호(%) 뒤에 16진수 2자리로 표현되기 때문에 퍼센트 인코딩(Percent-Encoding)이라고도 부릅니다.
- 한글 1글자는 왜 % 기호가 3개나 붙나요?
- 웹 표준인 UTF-8 문자셋에서 한글 음절 1자는 3바이트(24비트)를 차지합니다. 각 바이트마다 '%XX' 형태로 변환되므로 한글 1글자당 총 9글자(예: '가' -> %EA%B0%80)로 변환됩니다.
- 공백이 '+'로 바뀌는 것과 '%20'으로 바뀌는 것의 차이는 무엇인가요?
- 표준 URI 규격(RFC 3986)에서는 공백을 '%20'으로 표기합니다. 그러나 HTML 웹 폼(POST 요청 시 x-www-form-urlencoded)에서는 레거시 호환성을 위해 공백을 '+'로 전송하기도 합니다.
- URL 인코딩을 하지 않고 전송하면 어떤 문제가 생기나요?
- 특수문자('&', '=', '?')가 URL 파라미터 구분자로 오인되어 데이터가 잘리거나, 서버에서 400 Bad Request 에러 또는 글자 깨짐 현상이 발생합니다.
- 입력한 텍스트가 서버로 전송되나요?
- 전혀 전송되지 않습니다. 모든 URL 인코딩 처리는 방문자의 브라우저 내에서 100% 로컬 연산으로 이루어집니다.
인코딩 — 도구 목록
Base64 인코드
WebToolBox에서 제공하는 무료 인코딩 도구인 Base64 인코드 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.
Base64 디코드
WebToolBox에서 제공하는 무료 인코딩 도구인 Base64 디코드 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.
URL 디코드
WebToolBox에서 제공하는 무료 인코딩 도구인 URL 디코드 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.
HTML 이스케이프
WebToolBox에서 제공하는 무료 인코딩 도구인 HTML 이스케이프 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.
유니코드 변환
WebToolBox에서 제공하는 무료 인코딩 도구인 유니코드 변환 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.
JWT 디코더
WebToolBox에서 제공하는 무료 인코딩 도구인 JWT 디코더 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.
퓨니코드 변환기 (Punycode)
WebToolBox에서 제공하는 무료 인코딩 도구인 퓨니코드 변환기 (Punycode) 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.