한글이 든 쿼리
입력
https://example.com/search?q=개발자 도구
결과
https://example.com/search?q=%EA%B0%9C%EB%B0%9C%EC%9E%90%20%EB%8F%84%EA%B5%AC
🔒 브라우저 내부 처리
RFC3986 기준 인코딩/디코딩과 쿼리 파라미터 파싱, 스니펫 생성을 지원합니다.
복사하거나 아래 파라미터 테이블로 확인하세요.
Examples
입력
https://example.com/search?q=개발자 도구
결과
https://example.com/search?q=%EA%B0%9C%EB%B0%9C%EC%9E%90%20%EB%8F%84%EA%B5%AC
입력
https://a.com/b?next=https://c.com/d
결과
encodeURI https://a.com/b?next=https://c.com/d
encodeURIComponent https%3A%2F%2Fa.com%2Fb%3Fnext%3D...
encodeURI는 :와 /를 남겨 URL 전체를 인코딩할 때 쓰고, 파라미터 값 하나를 넣을 때는 encodeURIComponent를 써야 합니다.
Troubleshooting
이중 인코딩입니다. 이미 인코딩된 문자열을 한 번 더 인코딩하면 %가 %25로 바뀝니다. 디코딩을 두 번 해야 원문이 나오고, 원인은 대개 코드에서 인코딩을 두 곳에서 하고 있는 것입니다.
+를 공백으로 해석하는 것은 form 전송(application/x-www-form-urlencoded) 규칙입니다. 일반 URL 디코딩에서는 +가 플러스 그대로 남습니다.
경로 구분자로 쓰이는 /는 그대로 두고, 파라미터 값 안에 들어가는 /는 %2F로 인코딩해야 합니다. 리다이렉트 URL을 파라미터로 넘길 때 자주 문제가 됩니다.
Related
Guide
전체 URL을 인코딩해야 하는지, 쿼리 값 한 조각만 인코딩해야 하는지 구분하지 않으면 결과가 쉽게 깨집니다.
이미 인코딩된 값을 다시 인코딩하면 %2520 같은 형태가 생기면서 서버나 리다이렉트 흐름에서 오류가 날 수 있습니다.
인코딩 후에는 단순 문자열뿐 아니라 쿼리 파라미터 표를 함께 확인해 키와 값이 원하는 구조로 들어갔는지 보는 게 좋습니다.
Use Cases
로그인 후 리다이렉트, OAuth callback, 결제 완료 URL처럼 파라미터가 길게 붙는 주소를 빠르게 검토할 수 있습니다.
요청 URL이 길거나 특수문자가 많을 때는 API 요청 테스트와 함께 보면 쿼리 인코딩 이슈를 찾기 쉽습니다.