개발 도구
URL 인코딩·디코딩
한글 주소를 %XX 로 바꾸고 되돌립니다. 쿼리 문자열은 표로 풀어 고치고 다시 조립합니다.
🔒 입력한 내용과 파일은 이 브라우저 안에서만 처리합니다. 서버로 보내지 않습니다.
| # | 이름 | 값 (디코딩된 상태, 고칠 수 있습니다) |
|---|
URL 인코딩·디코딩 사용법
주소(URL)에는 영문, 숫자와 몇 가지 기호만 그대로 쓸 수 있습니다. 한글, 공백, 그리고 주소 안에서 특별한 뜻을 가진 기호를 값으로 넣으려면 바이트를 %와 16진수 두 자리로 적어야 하는데, 이것을 URL 인코딩 또는 퍼센트 인코딩이라고 부릅니다. 이 도구는 글을 인코딩하고 되돌리며, 긴 주소의 쿼리 문자열을 이름과 값의 표로 풀어서 고친 뒤 다시 조립해 줍니다.
쓰는 순서
- 인코딩·디코딩 탭에서 방향을 고르고 입력 칸에 글을 붙여 넣습니다. 결과는 바로 아래에 나옵니다.
- 인코딩이라면 바꿀 범위를 고릅니다. 매개변수 값 하나를 만들 때는 "값", 주소 전체를 통째로 넣었다면 "전체 주소"입니다.
- 여러 개를 한꺼번에 바꾸려면 한 줄에 하나씩 적고 줄마다 따로 변환을 켭니다.
- 결과 복사나 TXT로 저장으로 가져갑니다.
예시
범위를 "값"으로 두고 "한글 주소"를 인코딩하면 %ED%95%9C%EA%B8%80%20%EC%A3%BC%EC%86%8C 가 됩니다. 한글 한 글자가 UTF-8로 3바이트이므로 %XX 세 개씩이고 공백은 %20 입니다. 공백 옵션을 + 로 바꾸면 가운데가 %20 대신 + 가 됩니다.
범위에 따른 차이는 "https://example.com/검색?q=a b&x=1"을 넣어 보면 드러납니다.
| 바꿀 범위 | 결과 |
|---|---|
| 전체 주소 | https://example.com/%EA%B2%80%EC%83%89?q=a%20b&x=1 |
| 값 | https%3A%2F%2Fexample.com%2F%EA%B2%80%EC%83%89%3Fq%3Da%20b%26x%3D1 |
전체 주소 방식은 주소로 그대로 쓸 수 있고, 값 방식의 결과는 다른 주소의 매개변수(예: 로그인 뒤 돌아갈 주소를 담는 redirect=) 안에 넣을 때 씁니다. 세 번째 범위는 느낌표, 작은따옴표, 괄호, 별표까지 바꾸는 가장 엄격한 방식으로 OAuth 서명처럼 RFC 3986 규칙을 그대로 따라야 하는 곳에 씁니다.
쿼리 문자열을 표로 풀어 고치기
쿼리 문자열 분해·조립 탭에 주소를 붙여 넣으면 물음표 뒤의 내용을 이름과 값으로 나눠 표로 보여 줍니다. 값은 디코딩된 상태로 보이므로 한글 검색어가 무엇인지 바로 읽을 수 있습니다. 표의 칸은 고칠 수 있고, 고치는 즉시 아래 다시 조립한 주소가 바뀝니다.
- + 매개변수 추가로 줄을 더하고, 줄 끝의 지우기로 뺍니다. 광고 추적용 utm_ 매개변수를 떼어 내고 깨끗한 주소를 만들 때 편합니다.
- 이름순 정렬은 두 주소의 매개변수가 같은지 비교할 때, 값이 빈 것 지우기는 폼이 만든 지저분한 주소를 정리할 때 씁니다.
- 같은 이름이 두 번 이상 나오면 표 위에 알려 드립니다. 서버에 따라 앞의 값만 읽거나 뒤의 값만 읽어서 문제를 일으키는 경우가 있습니다.
- JSON으로 복사는 이름과 값을 JSON 객체로, 표를 CSV로 저장은 엑셀에서 볼 수 있게 내보냅니다.
예시 버튼을 누르면 q, page, sort, utm_source 네 개가 표로 나오고 q의 값은 "한글 주소"로 보입니다. 주소 전체가 아니라 "q=한글&page=2"처럼 쿼리 문자열만 넣어도 됩니다. 인코딩 탭에서 이 주소를 표로 분해를 누르면 입력한 첫 줄을 이 탭으로 넘깁니다.
흔한 실수
- 이중 인코딩: 이미 인코딩된 주소를 또 인코딩하면 %가 %25로 바뀌어 %25ED%2595 같은 모양이 됩니다. 디코딩 결과에 %XX 가 남아 있으면 이 도구가 알려 드립니다.
- + 와 공백: 디코딩할 때 공백 옵션이 + 이면 + 를 공백으로 읽고, %20 이면 + 를 그대로 둡니다. 전화번호 +82 나 Base64 값이 든 주소를 풀 때는 %20 으로 두세요.
- EUC-KR 주소: 오래된 국내 사이트 주소에서 "한글"은 %C7%D1%B1%DB 처럼 글자당 두 묶음으로 나옵니다. 글자 인코딩을 EUC-KR로 바꿔야 풀립니다. UTF-8로 풀려고 하면 어느 위치가 문제인지와 함께 인코딩을 바꿔 보라고 안내합니다.
- % 기호: "100%"처럼 % 뒤에 16진수가 없으면 디코딩 오류입니다. 퍼센트 기호 자체는 %25 로 적어야 합니다.
한계
도메인 부분의 한글(예: 한글.kr)은 퍼센트 인코딩이 아니라 퓨니코드라는 다른 방식으로 바뀝니다. 한글 도메인은 퓨니코드 변환 도구를 쓰세요. 분해 탭은 값이 UTF-8로 풀리지 않으면 EUC-KR로 한 번 더 시도하고, 그래도 안 되면 원래 표기 그대로 보여 줍니다.
자주 묻는 질문
공백은 %20 과 + 중 무엇으로 바꿔야 하나요?
주소의 경로 부분에서는 %20 만 공백으로 읽힙니다. + 는 HTML 폼이 보내는 쿼리 문자열(application/x-www-form-urlencoded)에서만 공백으로 약속된 표기입니다. 어디에 넣을지 모르겠다면 %20 이 어느 자리에서나 통합니다.
전체 주소와 값은 무엇이 다른가요?
전체 주소는 : / ? & = # 처럼 주소의 뼈대가 되는 기호를 그대로 두고 한글과 공백만 바꿉니다. 값은 그 기호들까지 모두 바꾸므로 매개변수 값 하나를 넣을 때 씁니다. 값 안에 &나 =가 들어 있는데 전체 주소 방식으로 바꾸면 주소가 망가집니다.
%25EC%2595 처럼 %25 가 잔뜩 보입니다.
이미 인코딩된 글을 한 번 더 인코딩한 이중 인코딩입니다. % 자체가 %25 로 바뀐 것이므로 디코딩을 두 번 하면 원래 글이 나옵니다. 결과를 입력으로 버튼으로 한 번 더 돌려 보세요.
디코딩했는데 한글이 깨지거나 오류가 납니다.
오래된 국내 사이트는 주소를 EUC-KR로 인코딩합니다. %C7%D1%B1%DB 처럼 한글 한 글자가 %XX 두 개로 되어 있으면 글자 인코딩을 EUC-KR로 바꿔서 디코딩하세요. UTF-8은 한글 한 글자가 %XX 세 개입니다.
함께 쓰면 좋은 도구
마지막 수정 2026-11-09. 있었으면 하는 기능이나 불편한 점은 이 도구에 건의하기로 알려 주세요.