URL 인코더/디코더

JavaScript encodeURIComponent / decodeURIComponent와 같은 UTF-8 퍼센트 인코딩으로 쿼리 값을 바꿉니다.

쿼리가 잘리는 문자

검색어나 리다이렉트 주소에 공백, 한글, &, =, ?, #를 그대로 넣으면 서버가 파라미터 경계를 잘못 읽습니다. 이 도구는 값 하나에 encodeURIComponent를 적용합니다. https://부터 주소 전체를 한 칸에 인코드하면 콜론과 슬래시까지 퍼센트로 바뀌어 링크가 깨집니다. 바꿀 것은 q= 뒤의 검색어, next= 뒤의 경로처럼 값 부분만입니다.

변환은 이 브라우저에서만 이루어집니다. 로그인 세션이 붙은 URL, 일회용 토큰, 내부 관리자 경로는 공용 PC에 붙여 넣지 마세요. 디버깅이 끝나면 입력란을 비우세요.

예시: 한강 검색어

원문 한강 야경 & 카페?를 인코드하면 한글은 UTF-8 바이트마다 %ED 형태로 바뀌고, 공백은 %20, 앰퍼샌드는 %26, 물음표는 %3F가 됩니다. 이 결과를 검색 파라미터 q= 뒤에 붙이면 서버가 “한강 야경”과 “카페”를 한 값으로 받을 수 있습니다. 인코드하지 않으면 &에서 다음 파라미터가 시작된 것으로 오해합니다.

이미 %ED%95%9C처럼 인코드된 문자열을 한 번 더 인코드하면 %가 %25로 쌓입니다. 로그에 “이중 인코딩”이 보이면 디코드를 한 번만 하고, 필요한 계층만 다시 인코드하세요.

공백, 플러스, 폼 인코딩

컴포넌트 인코딩은 공백을 %20으로 만듭니다. 오래된 HTML 폼(application/x-www-form-urlencoded)은 공백을 +로 보내기도 합니다. 이 페이지의 디코드는 +를 공백으로 바꾼 뒤 decodeURIComponent를 호출합니다. 원문에 진짜 플러스 기호가 있어야 하면, 그 값은 인코드 단계에서 %2B가 되어야 합니다.

encodeURI는 전체 URL에서 :/?#[]@ 등을 남깁니다. 이 도구는 그 모드가 아닙니다. 도메인과 경로를 유지한 채 쿼리만 손보려면 브라우저 주소창이나 서버 라우터에서 파라미터를 분리하세요.

HTML·Base64와 혼동하지 않기

페이지에 <a href>를 적을 때 꺾쇠를 이스케이프하는 일은 HTML 인코더입니다. 바이너리를 텍스트로 싣는 일은 Base64입니다. JSON 본문을 예쁘게 보는 일은 JSON 포맷터입니다. 글자 수 한도가 있는 짧은 링크 설명은 글자 수 세기로 확인하세요.

자주 묻는 질문

encodeURI와 무엇이 다른가요?

전체 URL 형태를 유지하는 쪽이 encodeURI에 가깝습니다. 이 도구는 값 단위라 &와 =도 인코드합니다. 주소 통째로 넣지 마세요.

공백이 %20과 +로 나뉘는 이유는?

쿼리 컴포넌트는 보통 %20입니다. 폼 인코딩은 +를 공백으로 해석합니다. 디코드 버튼은 +를 공백으로 치환한 뒤 처리합니다.

두 번 인코드하면 어떻게 되나요?

%가 %25로 쌓여 원문이 복구되지 않습니다. 이미 퍼센트가 있는 문자열은 디코드부터 하세요.

검색어가 서버에 저장되나요?

저장하지 않습니다. 변환은 이 탭에서만 실행됩니다. 세션이 붙은 URL은 공용 PC에 붙여 넣지 마세요.

잘못된 % 시퀀스는?

홀수 길이이거나 UTF-8이 아닌 %xx는 디코드가 실패합니다. 메시지를 보고 원본 로그의 잘린 부분을 확인하세요.