EZ
EZ2Conv

URL 인코더/디코더

브라우저에서 직접 웹 용도의 URL과 텍스트를 인코딩하고 디코딩합니다. 표준, 컴포넌트, 폼 인코딩 유형을 지원하며 유니코드를 완벽하게 지원하고 서버 업로드가 없습니다.

설정

14px
0/10000
결과가 여기에 표시됩니다...

사용 방법

  1. 인코딩할 일반 텍스트 또는 디코딩할 URL 인코딩 텍스트(% 기호 포함)를 입력하거나 붙여넣으세요
  2. 인코딩 유형(표준, 컴포넌트, 폼)을 선택하고 인코딩 또는 디코딩을 클릭하세요
  3. 원클릭 복사 버튼으로 출력 영역에서 변환 결과를 간편하게 복사하세요
  4. 모드 전환으로 인코딩 통계와 함께 인코딩과 디코딩을 자유롭게 전환할 수 있습니다
  5. 양방향 URL 인코딩 및 디코딩
  6. 완전한 유니코드 및 특수문자 지원
  7. 오류 메시지가 포함된 실시간 검증
  8. 서버 업로드 없음 - 완전한 클라이언트 측 처리

URL 인코딩과 퍼센트 인코딩의 원리

이 도구가 하는 일

URL이 안전하게 담을 수 있는 문자는 제한적입니다. 예약되지 않은 영문자와 숫자, 몇몇 기호를 벗어나는 문자는 모두 퍼센트 인코딩(% 기호 뒤에 바이트 값을 16진수로 붙이는 형식)으로 다시 써야 합니다. 이 도구는 일반 텍스트를 그 인코딩 형식으로 변환하고, 반대 방향으로도 동작해 %20이나 %26 같은 문자열을 원래 문자로 되돌립니다.

실제로 마주치는 상황을 세 가지 인코딩 방식으로 다룹니다. 표준 인코딩은 JavaScript의 encodeURI에 대응하며 URL 전체를 대상으로 하기 때문에 :, /, ?, # 같은 구조 문자는 그대로 남습니다. 컴포넌트 인코딩은 encodeURIComponent에 대응하며 이런 구조 문자까지 이스케이프하므로, 파라미터 값처럼 단독으로 쓰이는 부분에 적합합니다. 폼 인코딩은 브라우저가 폼을 전송할 때 쓰는 application/x-www-form-urlencoded 규칙을 따릅니다.

언제 사용하나요

값을 쿼리 문자열 안에 넣을 때는 컴포넌트 인코딩을 선택합니다. 검색어, 이메일 주소, 또는 그 자체에 ?, &, =를 포함하는 리다이렉트 대상 등이 그렇습니다. 인코딩해 두면 이 기호들이 URL 구조로 해석되어 링크가 깨지는 것을 막을 수 있습니다. 표준 인코딩은 공백이나 악센트가 붙은 글자가 섞여 들어간 완전한 주소를 정리하되, 슬래시와 물음표는 의미를 그대로 지켜야 할 때 어울립니다. 폼 인코딩은 POST 요청의 본문이나 직접 조립한 폼 데이터에 대응하며, 이때 공백은 %20이 아니라 +로 쓰입니다. 디코딩도 그만큼 자주 씁니다. 로그나 애널리틱스 리포트, 리다이렉트 사슬에서 가져온 인코딩된 링크를 붙여 넣어 실제로 어디를 가리키는지 읽어 낼 때입니다.

구체적인 예시

hello world & café라는 텍스트로 살펴보겠습니다. 컴포넌트 인코딩에서는 공백이 %20이 되고, 앰퍼샌드는 %26이 되며, café는 é가 UTF-8에서 2바이트로 저장되기 때문에 caf%C3%A9가 됩니다. 폼 인코딩에서는 같은 공백이 +로 쓰여 hello+world가 됩니다. 실시간 통계는 몇 글자가 바뀌었는지, 문자열의 어느 정도가 인코딩되었는지 보여 주므로 이미 한 번 인코딩된 텍스트를 가려내는 빠른 방법이 됩니다.

참고 사항과 엣지 케이스

예약 문자(: / ? # [ ] @ ! $ & ' ( ) * + , ; =)는 URL 안에서 의미를 가지므로, 표준 모드는 이를 일부러 그대로 두고 컴포넌트 모드는 이스케이프합니다. 모드를 잘못 고르는 것이 쿼리 파라미터가 깨지는 흔한 원인입니다. 인코딩은 UTF-8 바이트를 기준으로 정의되기 때문에 ASCII가 아닌 문자는 여러 개의 %XX 묶음으로 펼쳐집니다. URL을 두 번 인코딩하지 않도록 주의하세요. 이미 이스케이프의 일부인 %가 단독으로 %25로 바뀌면 링크는 더 이상 해석되지 않습니다. 헷갈릴 때는 먼저 디코딩해서 텍스트가 원본 상태인지 이미 이스케이프된 상태인지 확인하세요.

자주 묻는 질문

표준, 컴포넌트, 폼 세 가지 인코딩 방식은 물론 디코딩과 실시간 문자 통계까지 제한이나 요금 없이 사용할 수 있습니다. 유료 등급 뒤에 숨겨 둔 기능은 없습니다.
인코딩과 디코딩은 사용자 기기의 JavaScript로 실행되므로, 붙여 넣은 URL, 쿼리 값, 토큰, 폼 데이터는 로컬에서 처리되며 서버로 전송되지 않습니다.
텍스트나 인코딩된 문자열을 붙여 넣고 방식을 고르면 결과가 통계와 함께 곧바로 표시됩니다. 이메일 등록이나 로그인 단계는 전혀 없습니다.
표준(encodeURI)은 URL 전체를 위한 방식으로 :, /, ?, # 같은 구조 문자를 그대로 둡니다. 컴포넌트(encodeURIComponent)는 이런 문자까지 이스케이프하므로 단일 쿼리 값이나 프래그먼트에 알맞습니다. 폼 인코딩은 application/x-www-form-urlencoded를 따르며 폼 전송을 위해 공백을 +로 씁니다.
방식에 따라 다릅니다. 표준과 컴포넌트 인코딩은 공백을 %20으로 쓰고, 폼 인코딩은 +를 씁니다. 이는 application/x-www-form-urlencoded 본문의 관례이기 때문입니다. 둘 다 디코딩하면 일반 공백으로 되돌아갑니다.
ASCII가 아닌 텍스트는 먼저 UTF-8 바이트로 변환되고, 각 바이트가 %XX 묶음이 됩니다. 예를 들어 악센트가 붙은 é는 %C3%A9가 되고, 이모지는 더 긴 4바이트 묶음이 됩니다. 디코딩하면 원래 문자로 되돌아갑니다.