~ / 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을 복사하면 길고 알아보기 힘든 주소가 되는 거예요. 브라우저 주소창은 보기 좋게 한글로 표시하지만, 실제로 서버에 전송되는 것은 인코딩된 값입니다.

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도 마찬가지로 암호화가 아닙니다.

이 도구와 함께 보면 좋은 글

관련 도구