URL 인코딩이 필요한 이유
URL은 ASCII 문자만 안전해요. 한국어·이모지·공백·특수문자(&, =, ?, #)가 그대로 들어가면 서버가 잘못 파싱해요.
예시
검색어=React→%EA%B2%80%EC%83%89%EC%96%B4%3DReacthello world→hello%20world(또는hello+world)
인코딩하면 서버·브라우저·중계 라우터 모두 같은 URL로 해석해요.
URL을 인코딩하거나 디코딩하세요.
URL 인코더는 한국어·특수문자가 들어간 URL을 제대로 동작하게 만들어 줘요. API 호출, 검색 쿼리, 리다이렉트 처리에서 안 빼놓을 수 없는 도구거든요.
URL은 ASCII 문자만 안전해요. 한국어·이모지·공백·특수문자(&, =, ?, #)가 그대로 들어가면 서버가 잘못 파싱해요.
예시
검색어=React → %EA%B2%80%EC%83%89%EC%96%B4%3DReacthello world → hello%20world (또는 hello+world)인코딩하면 서버·브라우저·중계 라우터 모두 같은 URL로 해석해요.
JavaScript에는 두 가지 함수가 있어요.
?·&·=·#을 그대로 둬요.쿼리 파라미터 값을 인코딩할 때는 반드시 encodeURIComponent를 써야 해요. encodeURI를 쓰면 &·=이 그대로 남아서 다음 파라미터와 충돌해요.
이 도구는 encodeURIComponent 방식으로 인코딩해서, 주소 전체를 넣으면 ://·/·?까지 바뀌어요. 쿼리값이나 경로 한 조각만 넣으세요.
%가 %25로 바뀌어 깨져요+ 또는 %20 둘 다 OK지만 path에서는 %20만 OK# 처리: fragment 구분자라 인코딩 안 하면 그 뒤가 잘림xn--...)로 별도 변환 필요. URL 인코딩이랑 다른 표준이거든요% 뒤에 16진수 두 자리가 붙어 있으면 거의 인코딩된 거예요. %E, %2, %3 같은 패턴이 보이면 디코더로 먼저 풀어 본 뒤 다시 인코딩하세요.
한글 1글자가 UTF-8로 3바이트라서 인코딩하면 %XX%XX%XX 9자가 돼요. 영문 1글자는 인코딩 안 되거나 %XX 3자라서 짧게 보이는 거예요.
URL path에서는 %20만 안전해요. 쿼리스트링에서는 둘 다 OK지만 일관성을 위해 %20을 권장해요. +=공백은 application/x-www-form-urlencoded 폼 인코딩 규칙(W3C)이라 path에 그대로 쓰면 진짜 더하기 기호로 오해돼요.
아니요. 한글.kr 같은 국제화 도메인(IDN)은 URL 퍼센트 인코딩이 아니라 Punycode(xn--...)로 변환해야 해요. 도메인(호스트) 부분은 RFC 3987/IDNA 표준을 따르고, path·쿼리만 퍼센트 인코딩 대상이거든요.
&=?#/)와 비예약문자 구분, %XX 퍼센트 인코딩 규칙의 표준 근거+로 쓰는 폼 인코딩 직렬화 규칙의 근거