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로 인코딩됩니다. 디코딩할 때는 한 번만 해제되므로, 원본을 얻으려면 두 번 디코딩해야 합니다.