URL 인코더/디코더
관련 도구
URL 인코딩이란?
URL 인코딩(Percent-encoding)은 URL에서 사용할 수 없는 문자를 %XX 형식으로 변환하는 방식입니다. 공백, 한글, 특수 문자 등을 URL에 안전하게 포함시킬 때 사용합니다.
인코딩 규칙
문자 종류에 따라 인코딩 결과가 다릅니다. 영문자와 숫자는 변환 없이 그대로 유지되지만, 그 외 문자는 UTF-8 바이트값을 %XX 형식으로 표현합니다.
| 문자 종류 | 처리 방식 | 예시 |
|---|---|---|
| 영문자 / 숫자 | 변환 없이 그대로 | abc123 → abc123 |
| 공백 | %20 (또는 폼에서 +) | hello world → hello%20world |
| 한글 | UTF-8 3바이트 → %XX%XX%XX | 가 → %EA%B0%80 |
| 특수문자 | %XX 형식으로 변환 | & → %26, = → %3D |
encodeURI와 encodeURIComponent의 차이
JavaScript에는 URL 인코딩 함수가 두 가지 있고, 용도가 다릅니다. 이 도구는 파라미터 값 변환에 적합한 encodeURIComponent 방식을 사용합니다.
- encodeURIComponent — 쿼리 파라미터의 값처럼 URL의 "일부"를 넣을 때 사용합니다. / ? & =까지 모두 변환해 값이 URL 구조를 깨뜨리지 않게 합니다.
- encodeURI — 완성된 URL "전체"를 인코딩할 때 사용합니다. / ? & = 같은 구조 문자는 그대로 두고 공백·한글만 변환합니다.
검색어처럼 &가 들어갈 수 있는 값을 encodeURI로 처리하면 파라미터 구분자와 섞여 버그가 됩니다 — 값에는 항상 encodeURIComponent를 쓰는 것이 안전합니다.
자주 묻는 질문
- encodeURI와 encodeURIComponent 중 무엇을 쓰나요?
- 이 도구는 파라미터 "값"에 적합한 encodeURIComponent를 사용합니다. / ? & = 까지 변환해 값이 URL 구조를 깨뜨리지 않게 합니다.
- 공백은 %20으로 바뀌나요, +로 바뀌나요?
- 이 도구는 %20으로 인코딩합니다. +는 폼 전송(application/x-www-form-urlencoded)에서 공백을 나타내는 별도 방식입니다.
- 한글은 어떻게 인코딩되나요?
- UTF-8 바이트로 변환된 뒤 각 바이트가 %XX로 표현됩니다. 예를 들어 "가"는 %EA%B0%80이 됩니다.
- 입력값이 서버로 전송되나요?
- 아니요. 브라우저 안에서 변환되며 외부로 전송되지 않습니다.