🔗 URL 인코더 / 디코더
한글 URL을 %로 인코딩하거나, 깨져 보이는 %EA%B0%80 주소를 읽을 수 있게 디코딩해요. 쿼리스트링도 표로 풀어 보여줘요.
사용법
- 입력란에 URL이나 텍스트를 넣고 인코딩 또는 디코딩을 고릅니다. 결과는 즉시 output에 나옵니다.
- 쿼리 파라미터 값 하나를 인코딩할 때는 encodeURIComponent, 이미 완성된 URL 전체를 안전하게 만들 때는 encodeURI를 고르세요.
- 맨 아래 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
| 문자 | encodeURIComponent | encodeURI |
|---|---|---|
| 공백 | %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로 다시 시도합니다. 모든 처리는 브라우저 안에서만 이뤄집니다.