개발 · 도구
URL Encode · Decode
encode와 decode 검색 의도를 균형 있게 반영해 encodeURIComponent/decodeURIComponent 양방향 변환을 한 화면에서 제공합니다.
입력
결과
사용 방법
- 문자열을 URL 파라미터 형태로 바꾸려면 URL 인코딩을 선택합니다.
- 퍼센트 인코딩된 문자열을 읽을 때는 URL 디코딩을 선택합니다.
- 디코딩 중 오류가 나면 입력이 잘린 문자열인지, escape sequence가 완전한지 확인합니다.
언제 사용하나요
주소나 쿼리스트링에 공백·한글·특수문자를 담아야 할 때, 그리고 이미 인코딩된 주소를 사람이 읽을 수 있게 되돌릴 때 사용합니다. 검색어가 들어간 URL을 만들거나, 외부 시스템이 넘겨준 콜백 주소를 확인하거나, 캠페인 링크에 붙는 UTM 파라미터를 점검할 때가 대표적입니다. 한 화면에서 인코딩과 디코딩을 오가며 값을 바로 확인할 수 있습니다.
처리 기준과 예시
이 도구는 encodeURIComponent/decodeURIComponent를 기준으로 동작합니다. 즉 ?, &, =, /처럼 URL 구조를 이루는 문자까지 모두 안전한 형태로 바꿉니다. 공백은 %20, 한글은 UTF-8 바이트의 퍼센트 표기로 변환됩니다.
- 검색 파라미터:
hello world→hello%20world(공백은%20, 한글은 UTF-8 퍼센트 표기로 변환) - UTM 값: 공백·특수문자가 든 캠페인명을 안전한 파라미터 값으로 변환
- API 요청: 쿼리에 들어갈 값 하나하나를 인코딩해 구분자와 섞이지 않게 처리
전체 인코딩과의 차이, 주의사항
encodeURIComponent는 값 하나를 인코딩하는 용도이고, 주소 전체를 다룰 때 쓰는 encodeURI는 :, /, ?, & 같은 구조 문자를 그대로 둡니다. 둘을 혼동하면 결과가 달라지므로 용도를 구분해야 합니다.
- 주소 전체를 component 방식으로 인코딩하면
://까지 바뀌어 링크가 깨짐 - 이미 인코딩된 값을 한 번 더 인코딩하면
%가%25로 이중 인코딩됨 - 값마다 인코딩한 뒤
&로 이어 붙여야 파라미터 구분이 유지됨
특수문자를 다룬다는 점은 비슷해 보여도 Base64 인코더/디코더는 이진 데이터를 문자열로 표현하는 다른 목적의 도구이므로 섞어 쓰지 않도록 주의하세요.
자주 묻는 질문
- URL encode와 decode의 차이는 무엇인가요?
- encode는 특수문자/공백을 URL 안전 문자열로 바꾸고, decode는 인코딩된 문자열을 사람이 읽을 수 있는 원문으로 해석합니다.
- 한글 URL이 깨져 보이는 이유는 무엇인가요?
- 브라우저나 시스템이 URL 인코딩된 값을 직접 표시하기 때문입니다. decode를 수행하면 원문 한글을 다시 확인할 수 있습니다.
- 쿼리 파라미터는 왜 인코딩이 필요한가요?
- &, =, 공백 같은 문자가 파라미터 구분자로 오해되지 않도록 안전한 형태로 변환해야 하기 때문입니다.
- 잘못된 escape sequence 오류는 언제 발생하나요?
- % 뒤에 16진수 2자리가 완전하지 않거나 문자열이 중간에서 잘린 경우 decodeURIComponent에서 오류가 발생합니다.
- encodeURIComponent와 encodeURI는 어떻게 다른가요?
- encodeURIComponent는 값 하나를 인코딩하며
:/?같은 구조 문자까지 바꿉니다. encodeURI는 주소 전체를 다루며 구조 문자는 그대로 둡니다. 이 도구는 component 기준이라 파라미터 값 인코딩에 적합합니다. - URL 인코딩과 Base64는 같은 건가요?
- 다릅니다. URL 인코딩은 특수문자를 퍼센트 표기로 바꾸고, Base64는 이진 데이터를 문자열로 표현합니다. 용도와 결과 문자가 서로 다릅니다.