URL 인코더/디코더
한글·특수문자가 섞인 주소, 붙여넣고 한 번에 변환 — 입력값은 기기 밖으로 나가지 않습니다.
이미 인코딩된 값 같아요 · 디코딩을 눌러보세요
설명
한글·특수문자가 포함된 URL을 퍼센트 인코딩하거나 다시 사람이 읽을 수 있게 디코딩합니다.
관련 도구
URL 인코더는 일반 텍스트나 특수 문자를 포함한 문자열을 퍼센트 인코딩(percent-encoding) 방식으로 변환해 주는 도구입니다. 한글, 공백, '&', '#', '=' 같은 문자는 URL에 그대로 쓰면 서버나 브라우저가 잘못 해석할 수 있어, API 요청 파라미터 작성이나 링크를 직접 조합할 때 올바른 인코딩이 필수입니다. 반대로 인코딩된 문자열을 다시 사람이 읽을 수 있는 텍스트로 디코딩하는 기능도 함께 제공됩니다.
사용 방법
입력 칸에 인코딩하고 싶은 텍스트(예: '안녕하세요 world!')를 붙여넣거나 직접 입력합니다. '인코딩' 버튼을 누르면 '%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94%20world!' 형태로 변환된 결과가 아래에 표시됩니다. 반대로 퍼센트 인코딩된 문자열을 붙여넣고 '디코딩' 버튼을 누르면 원래 텍스트로 복원됩니다. 복사 버튼으로 결과를 바로 클립보드에 저장할 수 있습니다.
인코딩이 필요한 상황과 주의사항
API 키, 검색어, 주소 같은 값을 GET 파라미터로 전달할 때 인코딩하지 않으면 '&'나 '='이 파라미터 구분자로 혼동되어 요청이 깨집니다. 특히 한글 검색어를 직접 URL에 넣으면 서버 설정에 따라 깨진 문자로 수신될 수 있습니다. encodeURIComponent와 encodeURI는 동작이 다른데, 이 도구는 파라미터 값 처리에 적합한 encodeURIComponent 방식을 따르므로 '/', '?', '#' 같은 문자도 인코딩됩니다. URL 전체를 인코딩하려는 경우 슬래시(/)까지 인코딩되면 경로가 깨질 수 있으니 파라미터 값 부분만 선택해서 인코딩하세요.
자주 하는 실수
이중 인코딩(double encoding)이 가장 흔한 실수입니다. 이미 '%20'처럼 인코딩된 문자열을 다시 인코딩하면 '%2520'이 되어 서버에서 원본을 복원할 수 없게 됩니다. 입력 전에 이미 인코딩된 값인지 먼저 확인하세요. 공백 처리도 주의가 필요한데, 퍼센트 인코딩에서 공백은 '%20'이지만 HTML 폼 데이터에서는 '+'로 인코딩되는 경우가 있어 컨텍스트에 맞는 방식을 선택해야 합니다. 전체 URL이 아닌 파라미터 '값' 부분만 인코딩하는 것이 원칙입니다.
자주 묻는 질문
한글이 포함된 URL을 그대로 사용하면 안 되나요?
공백은 '%20'과 '+'중 무엇으로 인코딩해야 하나요?
인코딩 결과를 디코딩하면 원본이 정확히 복원되나요?
URL 전체를 붙여넣으면 경로(//)까지 인코딩되나요?
파일 이름에 특수 문자가 있을 때도 사용할 수 있나요?
개인정보처리방침
모든 처리는 브라우저 내부에서만 수행되며 입력값·파일은 서버로 전송·저장되지 않습니다. 광고: Google AdSense(쿠키 사용 가능, 설정). 문의 kjh920424@gmail.com
URL 인코더/디코더란
URL에는 영문자·숫자와 일부 기호(- _ . ~)만 그대로 쓸 수 있고, 한글이나 공백, & ? # = + / 같은 문자는 그대로 넣으면 주소가 깨지거나 다른 뜻으로 해석됩니다. 이 도구는 그런 문자를 % 뒤 16진수 형태(퍼센트 인코딩)로 바꿔주고, 반대로 %ED%95%9C처럼 인코딩된 문자열을 원래 글자로 되돌립니다. 위쪽 입력 칸에 원문이나 인코딩된 값을 붙여넣고 인코딩/디코딩 버튼을 누르면 아래 결과 칸에 나옵니다.
작동 원리 - 왜 한글이 %ED%95%9C처럼 되나
퍼센트 인코딩은 먼저 글자를 UTF-8 바이트로 바꾼 뒤, 각 바이트를 %XX(두 자리 16진수)로 표기합니다. 한글 '한'은 UTF-8에서 3바이트(ED 95 9C)라서 %ED%95%9C가 됩니다. 영문자 A는 안전 문자라 그대로 A입니다. 공백은 문맥에 따라 %20 또는 +로 쓰입니다. 이 도구는 자바스크립트 표준 함수 encodeURIComponent(디코딩은 decodeURIComponent)만 사용합니다. 따라서 / ? & = # 같은 기호까지 전부 %XX로 인코딩되므로, 주소 전체가 아니라 파라미터 '값' 한 부분만 골라 넣는 것이 올바른 사용법입니다.
| 문자 | 인코딩 결과 |
|---|---|
| 공백 | %20 |
| & | %26 |
| ? | %3F |
| = | %3D |
| # | %23 |
| 한 | %ED%95%9C |
이럴 때 씁니다
네이버·구글 검색 결과 주소를 복사했더니 query=%EA%B2%80%EC%83%89처럼 나와서 무슨 검색어인지 확인하고 싶을 때 디코딩합니다. 반대로 UTM 파라미터나 API 요청에 한글 값을 직접 넣어야 할 때, 예를 들어 utm_campaign=봄세일을 utm_campaign=%EB%B4%84%EC%84%B8%EC%9D%BC로 인코딩합니다. 카카오톡·문자로 링크를 보낼 때 한글이 섞여 클릭이 안 되는 경우, 미리 인코딩해 두면 안전합니다. 개발 중 쿼리스트링에 특수문자(&, +, 공백)가 값으로 들어가 파라미터가 잘리는 문제도 값만 인코딩해 해결합니다.
실전 팁
주소 전체를 한 번에 인코딩하면 ://나 ?까지 %로 바뀌어 링크가 망가집니다. 값 부분(파라미터 하나)만 골라서 인코딩하세요. 이미 인코딩된 문자열을 또 인코딩하면 %가 %25로 바뀌는 이중 인코딩이 생기니, %25가 보이면 디코딩을 한 번 더 해보면 원문이 나옵니다. 공백이 +로 된 옛날 폼(form) 방식 값은 디코딩 시 +가 공백이 아니라 그대로 남을 수 있으니 확인이 필요합니다.