URL 인코딩/디코딩이 필요한 순간과 쉽게 처리하는 법
URL 인코딩(퍼센트 인코딩)이 무엇이고 언제 필요한지, 한글·특수문자·UTM 값을 다룰 때 주의할 점과 무료 인코더/디코더로 쉽게 변환하는 법을 정리했습니다.
URL 인코딩/디코딩이 필요한 순간과 쉽게 처리하는 법
링크를 공유했더니 한글이 %ED%95%9C처럼 깨져 보인 적이 있을 것입니다. 반대로 파라미터에 한글을 넣었더니 링크가 아예 동작하지 않은 경우도 있습니다. 둘 다 URL 인코딩과 관련된 문제입니다.
URL 인코딩이란
URL 인코딩(퍼센트 인코딩)은 URL에서 그대로 쓸 수 없는 문자를 %XX 형식으로 바꾸는 규칙입니다. URL에는 안전하게 쓸 수 있는 문자가 정해져 있어서, 그 밖의 문자는 인코딩해야 브라우저와 서버가 올바르게 해석합니다.
- 공백 →
%20 - 한글
한→%ED%95%9C &→%26
인코딩이 필요한 순간
특히 다음 상황에서 인코딩이 필요합니다.
- 파라미터 값에 한글이나 특수문자가 들어갈 때: 검색어, 이름, 태그 등.
- UTM 값에 공백이나 기호가 있을 때:
utm_campaign=여름 세일은여름%20세일로 인코딩해야 안전합니다. UTM 파라미터를 다룰 때 자주 마주칩니다. - URL을 다른 URL의 파라미터로 넘길 때:
?redirect=뒤에 붙는 주소는 통째로 인코딩해야 중간에 잘리지 않습니다.
인코더 디코더 사용법
직접 규칙을 외울 필요는 없습니다. 무료 URL 인코더/디코더에 값을 넣으면 즉시 변환됩니다.
- encodeURIComponent: 파라미터 값 하나를 인코딩할 때.
://?#같은 구조 문자까지 모두 바꿉니다. - encodeURI: 전체 URL을 인코딩할 때. URL 구조 문자는 그대로 둡니다.
받은 인코딩된 URL이 무엇인지 확인하려면 디코딩해 읽기 쉬운 형태로 되돌리거나, URL 파서로 구성 요소를 분해해 볼 수 있습니다.
인코딩된 긴 URL은 단축이 답
인코딩을 거치면 URL이 훨씬 길어집니다. 이런 링크를 그대로 공유하면 지저분하고, 메신저에서 잘리기도 합니다. 단축 링크로 줄이면 깔끔해질 뿐 아니라 클릭 추적까지 됩니다. Edgelink는 인코딩된 복잡한 URL도 짧고 추적 가능한 링크로 바꿔 줍니다.
자주 묻는 질문
encodeURIComponent와 encodeURI의 차이는 무엇인가요?
encodeURIComponent는 파라미터 값 하나를 모든 특수문자까지 인코딩하고, encodeURI는 전체 URL에서 구조 문자(://?# 등)는 그대로 둡니다. 값에는 Component를, 전체 URL에는 URI를 씁니다.
링크에 한글이 %ED%95%9C처럼 깨져 보여요.
URL 인코딩된 상태입니다. 무료 URL 디코더에 넣으면 원래 한글로 되돌려 읽을 수 있습니다.