~ / developer / url-encoder

🔗 URL 인코더 / 디코더

한글 URL을 %로 인코딩하거나, 깨져 보이는 %EA%B0%80 주소를 읽을 수 있게 디코딩해요. 쿼리스트링도 표로 풀어 보여줘요.

광고
광고
options
작업
인코딩 방식
옵션
output
URL 분석 · 쿼리스트링 파라미터
광고

사용법

  1. 입력란에 URL이나 텍스트를 넣고 인코딩 또는 디코딩을 고릅니다. 결과는 즉시 output에 나옵니다.
  2. 쿼리 파라미터 값 하나를 인코딩할 때는 encodeURIComponent, 이미 완성된 URL 전체를 안전하게 만들 때는 encodeURI를 고르세요.
  3. 맨 아래 URL 분석 표에서 호스트·경로와 쿼리스트링의 key/value가 디코딩된 상태로 정리됩니다. copy를 누르면 탭 구분 표로 복사돼요.

URL 인코딩(퍼센트 인코딩)이란?

URL에는 영문자, 숫자, 일부 기호(- _ . ~)만 그대로 쓸 수 있습니다. 한글이나 공백, 그리고 URL 안에서 특별한 의미가 있는 ? & = # / 같은 기호를 데이터로 쓰려면 UTF-8 바이트를 %XX(16진수)로 바꿔야 해요. 이것이 퍼센트 인코딩(RFC 3986)입니다.

예를 들어 "가"는 UTF-8로 EA B0 80 3바이트라서 %EA%B0%80이 됩니다. 한글 한 글자가 9글자로 늘어나기 때문에 한글 URL을 복사하면 길고 알아보기 힘든 주소가 되는 거예요. 브라우저 주소창은 보기 좋게 한글로 표시하지만, 실제로 서버에 전송되는 것은 인코딩된 값입니다.

인코딩 원리 (3단계)

  1. 글자를 UTF-8 바이트로 바꿔요. "서" → EC 84 9C (한글은 글자당 3바이트)
  2. 그대로 둬도 되는 문자(영문·숫자·- _ . ~ 등)인지 확인해요.
  3. 아니면 바이트마다 % + 16진수 두 자리로 적어요. "서" → %EC%84%9C, 공백 → %20

디코딩은 거꾸로 %XX를 바이트로 모은 뒤 UTF-8 글자로 다시 읽는 거예요.

변환 예시

입력방식결과
서울 맛집encodeURIComponent%EC%84%9C%EC%9A%B8%20%EB%A7%9B%EC%A7%91
서울 맛집 & 카페encodeURIComponent%EC%84%9C%EC%9A%B8%20%EB%A7%9B%EC%A7%91%20%26%20%EC%B9%B4%ED%8E%98
https://tool.smithlab.co.kr/검색?q=서울 맛집&page=1encodeURIhttps://tool.smithlab.co.kr/%EA%B2%80%EC%83%89?q=%EC%84%9C%EC%9A%B8%20%EB%A7%9B%EC%A7%91&page=1

한글 5글자(공백 포함)인 "서울 맛집"이 39글자가 됐어요. 한글 4자 × 9글자 + 공백 3글자예요.

광고

encodeURIComponent vs encodeURI

문자encodeURIComponentencodeURI
공백%20%20
한글 "한"%ED%95%9C%ED%95%9C
/ ? :%2F %3F %3A그대로
& = #%26 %3D %23그대로
+%2B그대로
- _ . ~ ! * ' ( )그대로그대로

encodeURIComponent는 URL 구조를 만드는 기호까지 모두 인코딩합니다. 그래서 검색어처럼 값 하나를 쿼리에 넣을 때 써야 해요. 검색어에 &가 들어 있는데 encodeURI를 쓰면 ?q=A&B가 되어 서버는 q=A와 B라는 두 파라미터로 읽습니다. 반대로 encodeURI는 https://나 ?, & 같은 구조는 살려 두고 한글·공백만 바꾸므로, 완성된 URL을 통째로 다룰 때 씁니다.

공백은 %20? 아니면 +?

HTML 폼을 GET으로 전송하면 application/x-www-form-urlencoded 규칙에 따라 공백이 +가 됩니다. 반면 URL 경로나 encodeURIComponent는 %20을 씁니다. 디코딩할 때 +가 공백으로 바뀌지 않는다면 "공백 ↔ +" 옵션을 켜세요. 아래 URL 분석 표는 폼 규칙대로 +를 공백으로 해석합니다.

옛 한국 사이트나 일부 게시판 URL은 UTF-8이 아닌 EUC-KR로 인코딩되어 있습니다(예: "가" = %B0%A1). UTF-8로 풀리지 않으면 자동으로 EUC-KR로 다시 시도합니다. 모든 처리는 브라우저 안에서만 이뤄집니다.

광고
광고

자주 묻는 질문

%EA%B0%80 같은 주소를 한글로 보려면?
입력란에 붙여넣고 "디코딩"을 고르면 됩니다. 결과에 %XX가 또 남아 있으면 두 번 인코딩된 것이니 "결과를 입력으로"를 눌러 한 번 더 디코딩하세요.
encodeURIComponent와 encodeURI 중 뭘 써야 하나요?
쿼리 파라미터 값, 경로의 한 조각처럼 일부분을 넣을 때는 encodeURIComponent, 이미 완성된 URL 전체를 안전하게 만들 때는 encodeURI를 씁니다. 헷갈리면 값 단위로 encodeURIComponent를 쓰는 것이 안전합니다.
디코딩하면 한글이 깨져요.
UTF-8이 아니라 EUC-KR로 인코딩된 주소일 수 있습니다. 이 도구는 UTF-8로 실패하면 EUC-KR로 자동 재시도하니, 결과 아래 안내 문구를 확인하세요.
URL 인코딩은 암호화인가요?
아닙니다. 누구나 되돌릴 수 있는 표기 변환일 뿐이라 비밀번호나 개인정보를 숨기는 용도로 쓰면 안 됩니다. Base64도 마찬가지로 암호화가 아닙니다.

이 도구와 함께 보면 좋은 글

관련 도구

광고

더 둘러보기

💻 개발자 다른 도구

🔥 많이 찾는 도구

🔮 재미로 한 번 더

📝 읽어 볼 만한 글

글 전체 보기 →