URL 인코더 / 디코더
한글·특수문자가 포함된 URL을 percent-encoding(%XX) 형식으로 변환하거나 되돌립니다
URL 인코딩이 필요한 이유
URL에는 안전하게 사용 가능한 문자가 정해져 있습니다. 한글, 공백, 특수문자(`@`, `#`, `?`, `&` 등)는 그대로 두면 브라우저나 서버가 다르게 해석할 수 있어 percent-encoding(%XX)으로 변환해야 합니다. 이 도구는 입력 문자열을 표준 RFC 3986 방식으로 인코딩하고, 반대로 디코딩도 수행합니다.
언제 쓰면 좋은가
- 한글 검색어를 URL 파라미터로 넘겨야 할 때
- API 요청에 특수문자가 포함된 쿼리스트링을 만들 때
- 이메일·문자에 포함된 알 수 없는 `%XX` 문자열을 사람이 읽을 수 있게 디코딩
- 로그 파일에서 인코딩된 URL을 분석할 때
encodeURIComponent vs encodeURI
이 도구는 `encodeURIComponent`를 사용합니다. `encodeURI`는 `:/?#&` 같은 구분자를 그대로 두지만, `encodeURIComponent`는 모두 인코딩합니다. 쿼리 파라미터 값 하나를 인코딩할 때는 후자, 전체 URL을 한 번에 처리할 때는 전자가 적합합니다.
개인정보 안전성
모든 인코딩/디코딩은 사용자 브라우저 안에서만 처리됩니다. 입력 데이터는 서버로 전송되지 않으며 페이지를 떠나는 즉시 흔적이 남지 않습니다. 토큰, 세션 ID, 개인정보가 포함된 URL도 안심하고 변환할 수 있습니다.
자주 묻는 질문
- Q. `+` 와 `%20` 차이는?
- A. 둘 다 공백을 표현하지만 `+`는 폼 데이터 인코딩(application/x-www-form-urlencoded), `%20`은 URL 경로 인코딩에 사용됩니다. 이 도구는 RFC 3986에 따라 `%20`을 사용합니다.
- Q. 한글 한 글자가 왜 9자로 변환되나요?
- A. UTF-8 한글 한 글자는 3바이트이며 각 바이트가 `%EA` 처럼 3자(%XX) 표기로 변환되어 총 9자가 됩니다.
- Q. 이미 인코딩된 URL을 다시 인코딩하면?
- A. `%` 문자 자체가 `%25`로 인코딩되어 이중 인코딩 상태가 됩니다. 디코딩 두 번 해야 원복됩니다. 인코딩 전 입력이 이미 인코딩됐는지 확인하세요.