본문으로 건너뛰기
LifeTools

URL 인코더 · 디코더

주소에 들어간 한글이나 특수문자를 %ED%95%9C 형태(퍼센트 인코딩)로 바꾸거나 되돌립니다. 주소 전체와 값 하나를 구분해서 처리합니다.

검색어처럼 주소에 끼워 넣을 값 하나를 다룹니다. &, =, / 까지 전부 바꿉니다.

변환 방향

적용 범위

인코딩 결과

위에 값을 넣으면 바로 변환됩니다.

광고

광고 자리

이렇게 계산돼요

주소에는 영문·숫자와 일부 기호만 쓸 수 있습니다. 그래서 한글이나 공백처럼 쓸 수 없는 문자는 UTF-8 바이트로 바꾼 뒤 각 바이트를 %와 16진수 두 자리로 적습니다. '한'은 3바이트라 %ED%95%9C가 됩니다. 한글 한 글자가 아홉 자로 늘어나는 이유입니다. 핵심은 '주소 전체'와 '값 하나'를 구분하는 것입니다. 주소 전체를 인코딩할 때는 /, ?, &, = 를 남겨야 합니다. 이 문자들이 경로와 검색어를 구분하는 뼈대이기 때문입니다. 반대로 검색어 같은 값 하나를 넣을 때는 이 문자들까지 전부 바꿔야 합니다. 여기서 사고가 자주 납니다. 검색어에 &가 들어 있는데 값 인코딩을 하지 않으면, 받는 쪽은 그 지점부터 새로운 항목으로 읽습니다. 'A&B'를 검색하려 했는데 A만 검색되고 B는 엉뚱한 값으로 넘어가는 식입니다.

자주 묻는 질문

이미 완성된 주소를 다듬는 거라면 '주소 전체'를, 검색어나 파일명처럼 주소에 끼워 넣을 값 하나라면 '값 하나'를 고르세요. 값을 넣는데 주소 전체 모드를 쓰면 &나 =가 그대로 남아, 받는 쪽이 항목 구분자로 착각합니다.

인코딩된 주소를 다시 인코딩해서 %가 %25로 바뀐 경우가 많습니다. %25ED%2595%259C처럼 %25가 보이면 이중 인코딩입니다. 디코딩을 두 번 돌리면 원래 주소가 나옵니다.

위치에 따라 다릅니다. 주소의 경로 부분에서는 %20이 맞고, 폼으로 전송되는 검색어에서는 +로 쓰는 관행이 있습니다. 이 도구는 표준 방식인 %20으로 바꿉니다. 받는 쪽이 +를 요구한다면 변환 후 %20을 +로 바꿔주세요.

한글 한 글자가 UTF-8에서 3바이트이고, 바이트마다 %XX 세 글자가 붙기 때문입니다. 결과적으로 한 글자가 아홉 자가 됩니다. 주소 길이 제한이 있는 곳에 넣을 때는 이 점을 감안해야 합니다.

광고

광고 자리

인코딩 규칙은 쓰이는 자리마다 다릅니다. 쿼리스트링의 공백을 +로 볼지 %20으로 볼지, 슬래시나 콜론을 남길지가 서버·라이브러리마다 갈려 그대로 붙여 넣으면 링크가 깨질 수 있습니다. 결제 연동이나 API 호출처럼 실패가 곧 사고인 곳에서는 해당 문서의 규격을 확인한 뒤 사용하세요.