URL 인코더/디코더
URL을 인코딩하고 디코딩합니다.
유효하지 않은 URL
URL 인코딩·디코딩이란
URL 인코딩(퍼센트 인코딩)이란, URL에 담을 수 없는 한글이나 기호를 「%XX」 형식의 ASCII 문자열로 바꾸는 구조입니다. URL은 본래 ASCII 문자만을 상정하여 설계되었으므로, 한글 같은 멀티바이트 문자나 「?」 「&」 등의 예약 문자를 매개변수 값으로 넘길 때에는 이 변환이 필수가 됩니다.
본 도구는 입력한 URL이나 문자열을 클릭 한 번으로 인코딩·디코딩할 수 있고, 변환 결과를 그대로 복사해 쓸 수 있습니다. API 요청의 조립, 리다이렉트 URL의 생성, 다른 시스템에서 받은 인코딩된 URL의 내용 확인 등, 개발 작업의 여러 장면에서 활용할 수 있습니다.
사용법
- 변환할 문자열을 입력합니다 한글이 들어 있는 텍스트나, 이미 인코딩된 URL을 입력 칸에 붙여 넣습니다.
- 인코딩인지 디코딩인지 고릅니다 보통의 문자열을 % 표기로 바꾸려면 인코딩, % 표기를 원래대로 되돌리려면 디코딩을 고릅니다.
- 변환 결과를 확인합니다 변환된 문자열이 즉시 표시됩니다.
- 결과를 복사해 이용합니다 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 표준과 다릅니다.
자주 묻는 질문
%XX 16진수 형식으로 변환하는 과정입니다. 디코딩은 그 반대 과정으로 원래의 읽기 쉬운 텍스트로 복원합니다.%20을 사용합니다(RFC 3986 표준). +는 HTML 폼 데이터의 application/x-www-form-urlencoded 쿼리 문자열에서만 사용합니다. 확실하지 않은 경우 %20이 더 안전한 선택입니다.- _ . ~ 기호는 인코딩 없이 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 형식에서 사용됩니다. 용도에 따라 구분이 필요합니다.