URL 인코더/디코더

URL을 인코딩하고 디코딩합니다.

유효하지 않은 URL

URL 인코딩·디코딩이란

URL 인코딩(퍼센트 인코딩)이란, URL에 담을 수 없는 한글이나 기호를 「%XX」 형식의 ASCII 문자열로 바꾸는 구조입니다. URL은 본래 ASCII 문자만을 상정하여 설계되었으므로, 한글 같은 멀티바이트 문자나 「?」 「&」 등의 예약 문자를 매개변수 값으로 넘길 때에는 이 변환이 필수가 됩니다.

본 도구는 입력한 URL이나 문자열을 클릭 한 번으로 인코딩·디코딩할 수 있고, 변환 결과를 그대로 복사해 쓸 수 있습니다. API 요청의 조립, 리다이렉트 URL의 생성, 다른 시스템에서 받은 인코딩된 URL의 내용 확인 등, 개발 작업의 여러 장면에서 활용할 수 있습니다.

사용법

  1. 변환할 문자열을 입력합니다 한글이 들어 있는 텍스트나, 이미 인코딩된 URL을 입력 칸에 붙여 넣습니다.
  2. 인코딩인지 디코딩인지 고릅니다 보통의 문자열을 % 표기로 바꾸려면 인코딩, % 표기를 원래대로 되돌리려면 디코딩을 고릅니다.
  3. 변환 결과를 확인합니다 변환된 문자열이 즉시 표시됩니다.
  4. 결과를 복사해 이용합니다 API 요청의 쿼리 매개변수나 리다이렉트 URL에 그대로 붙여 넣어 쓸 수 있습니다.

더 잘 활용하기 위한 팁

  • 일본어 문자「あ」는 UTF-8로 인코딩하면 %E3%81%82가 됩니다.
  • 공백은 URL 경로에서는 %20으로, 쿼리 파라미터에서는 +로 변환될 수 있습니다(RFC 3986과 HTML 폼 사양의 차이).
  • ?, &, = 등의 예약 문자를 파라미터 값으로 사용할 때는 인코딩이 필요합니다.
  • REST API 쿼리 파라미터에 비ASCII 문자를 포함하거나 리다이렉트 URL을 안전하게 전달할 때 유용합니다.

활용 상황

REST API의 쿼리 매개변수 작성

한글 키워드나 자유 입력 값을 API의 쿼리 문자열에 안전하게 담고 싶을 때 씁니다.

리다이렉트 URL의 조립

이동할 곳을 나타내는 URL을 매개변수로서 다른 URL에 심을 때, 인코딩하여 구분 문자와의 충돌을 막습니다.

다른 시스템에서 받은 URL의 내용 확인

로그나 외부 서비스에서 넘어온 % 표기투성이의 URL을 디코딩하여, 실제 매개변수 값을 읽어 낼 수 있습니다.

메일 본문·SNS 공유용 링크의 작성

제목이나 본문이 들어간 mailto 링크, SNS 공유용 URL에 한글 텍스트를 안전하게 담을 수 있습니다.

용어집

퍼센트 인코딩
문자를 UTF-8의 바이트 열로 바꾸고, 각 바이트를 「%」+16진수 두 자리로 나타내는 방식입니다. URL에서 쓸 수 없는 문자를 안전하게 표현합니다.
예약 문자
「?」 「&」 「=」 「#」 「+」 등 URL의 구조를 나누기 위해 쓰이는 기호입니다. 매개변수 값에 담을 경우에는 인코딩이 필요합니다.
비예약 문자
영숫자와 「-」 「_」 「.」 「~」의 네 기호입니다. RFC 3986에서 인코딩이 필요 없다고 정해져 있습니다.
RFC 3986
URI의 구문을 정한 인터넷 표준 규격입니다. 퍼센트 인코딩의 규칙도 여기서 정의되어 있습니다.
application/x-www-form-urlencoded
HTML 폼 전송에서 쓰이는 인코딩 형식입니다. 공백을 %20이 아니라 +로 바꾸는 점이 URI 표준과 다릅니다.

자주 묻는 질문

인코딩은 공백이나 비ASCII 문자를 URL에서 안전하게 사용할 수 있는 %XX 16진수 형식으로 변환하는 과정입니다. 디코딩은 그 반대 과정으로 원래의 읽기 쉬운 텍스트로 복원합니다.

URL 경로 부분에는 %20을 사용합니다(RFC 3986 표준). +는 HTML 폼 데이터의 application/x-www-form-urlencoded 쿼리 문자열에서만 사용합니다. 확실하지 않은 경우 %20이 더 안전한 선택입니다.

비예약 문자인 영문자(A–Z, a–z), 숫자(0–9), 그리고 - _ . ~ 기호는 인코딩 없이 URL에 사용할 수 있습니다. &나 =와 같은 예약 문자는 파라미터 값으로 사용할 때 반드시 인코딩해야 합니다.
툴군

여담 ― URL의 탄생: Tim Berners-Lee와 World Wide Web의 여명

URL은 1991년 World Wide Web의 발명자 Tim Berners-Lee가 설계했습니다. 처음에는 ASCII 문자만 가정하여 설계되었기 때문에, 일본어와 같은 멀티바이트 문자나 특수 문자는 퍼센트 인코딩으로 표현해야 합니다.

인터넷 최초의 웹 페이지 URL인 http://info.cern.ch/hypertext/WWW/TheProject.html은 지금도 접근 가능합니다. 이모지 도메인(예: 🍕.ws)도 기술적으로 가능하며, 내부적으로 Punycode(xn-- 형식) 형태로 변환됩니다. URL은 이론적으로 2,000자 이상도 가능하지만, 실용상 브라우저와 서버의 제한(약 2,048자)이 있습니다.

RFC 3986에서 URL 사양이 정의되어 있지만, "%20(공백)"과 "+(공백)"의 구분은 지금도 자주 혼란의 원인이 됩니다. %20은 URI 표준이며, +는 HTML 폼의 application/x-www-form-urlencoded 형식에서 사용됩니다. 용도에 따라 구분이 필요합니다.