URL에 한글·특수문자가 들어가면 %EA%B9%80 같은 인코딩이 필요합니다. 이 도구는 인코딩·디코딩을 양방향으로 변환하며, encodeURI(경로용)와 encodeURIComponent(쿼리스트링용)의 차이도 모두 확인할 수 있어요.
💡 encodeURI vs encodeURIComponent
| 함수 | 용도 | 인코딩하지 않는 문자 |
|---|---|---|
| encodeURI | 전체 URL | : / ? # [ ] @ ! $ & ' ( ) * + , ; = |
| encodeURIComponent | 쿼리스트링 값 등 부분 | 알파벳·숫자·- _ . ~ ! |
언제 어떤 걸 쓰나요?
URL 전체를 인코딩할 때는 encodeURI, 쿼리스트링의 값 부분을 인코딩할 때는 encodeURIComponent. 예: https://api.com/search?q= 뒤의 값에는 encodeURIComponent를 써야 ?, & 같은 문자가 제대로 이스케이프됩니다.
자주 묻는 질문 (FAQ)
Q. %20과 +의 차이는?
RFC 기준 URL 경로에서 공백은 %20, 폼 제출(application/x-www-form-urlencoded)에서는 +로 표현합니다. 웹 서버는 보통 둘 다 공백으로 디코딩합니다.
Q. 한글이 %EA%B9%80 처럼 길어지는 이유?
UTF-8 인코딩이기 때문입니다. 한글 한 글자는 3바이트라 16진수로 6자리(%XX%YY%ZZ)로 표현됩니다.
Q. 이중 인코딩이 되면?
%가 %25로 인코딩됩니다. 디코딩할 때는 한 번만 해제되므로, 원본을 얻으려면 두 번 디코딩해야 합니다.