퍼센트 인코딩(URL 인코딩)이란?
URL 인코딩 가이드
URL은 원래 아스키(ASCII) 문자 중에서도 제한된 집합만 그대로 쓸 수 있도록 설계됐습니다. 한글이나 공백, 그리고 ?·& 같은 특수문자를 주소에 그대로 넣으면 브라우저·서버마다 다르게 해석되거나 깨질 수 있습니다. 이를 막기 위해 사용하는 것이 퍼센트 인코딩(percent-encoding), 흔히 말하는 URL 인코딩입니다.
%XX 표기의 의미
퍼센트 인코딩은 안전하지 않은 문자를 그 문자의 바이트 값(16진수)으로 바꾸고 앞에 %를 붙입니다. 예를 들어 공백은 %20, 물음표는 %3F가 됩니다. 한글처럼 여러 바이트로 이뤄진 문자는 UTF-8 바이트마다 %XX가 연속으로 붙습니다.
- 공백 →
%20 ?→%3F&→%26가(UTF-8) →%EA%B0%80
왜 UTF-8 기준인가
현대 웹은 사실상 UTF-8을 표준으로 씁니다. 브라우저의 encodeURIComponent도 문자열을 UTF-8 바이트로 바꾼 뒤 각 바이트를 %XX로 변환합니다. 그래서 같은 한글이라도 인코딩 결과가 항상 동일하며, 디코딩하면 원문이 정확히 복원됩니다.
이 사이트의 인코드/디코드 도구는 브라우저 내장 함수를 그대로 사용하므로, 입력한 값이 서버로 전송되지 않고 즉시 변환됩니다.
언제 필요한가
검색어가 들어간 링크, 쿼리 파라미터 값, 리다이렉트 대상 URL을 다른 URL의 값으로 넣을 때 등 주소의 일부에 임의의 문자열을 끼워 넣을 때 퍼센트 인코딩이 필요합니다. 값을 인코딩하지 않으면 &나 =가 구분자로 오인돼 파라미터가 잘못 잘릴 수 있습니다.