개발자

URL Encoder / Decoder

공백, 기호, 특수 문자는 URL을 깨뜨립니다 — 퍼센트 인코딩이 이를 해결합니다. 안전한 전송을 위해 URL을 인코딩하거나, 읽을 수 있는 텍스트로 즉시 디코딩할 수 있습니다.

이 계산기가 도움이 되었나요?

URL Encoder / Decoder이란?

URL 인코더/디코더는 일반 텍스트와 URL 안전한 퍼센트 인코딩 형식 간에 변환하는 필수 웹 개발 도구입니다. URL에 공백, 특수 기호 또는 악센트 문자와 이모지와 같은 비 ASCII 문자가 포함되면 제대로 인코딩하지 않으면 손상됩니다. 이 도구는 URL 모드(전체 URL 인코딩)와 구성 요소 모드(개별 쿼리 매개변수 값 인코딩) 모두 완전히 지원하는 즉시 인코딩과 디코딩을 제공하며, 여러 문자열을 동시에 처리하는 일괄 모드도 제공합니다. RFC 3986에서 정의한 모든 표준 퍼센트 인코딩 작업을 처리합니다. 웹 개발자, API 통합자, SEO 전문가 및 쿼리 문자열, 리디렉션 또는 URL 기반 데이터 전송을 다루는 모든 사람에게 필수적입니다. 브라우저 내에서 완전히 작동하여 빠르고 프라이빗합니다.

이 계산기를 사용해야 할 때

  • 공백, 기호 또는 비ASCII 문자가 포함된 쿼리 파라미터가 있는 URL을 만들고 있을 때
  • 퍼센트 인코딩된 URL을 디코딩하여 실제 내용을 읽어야 할 때
  • 인코딩되지 않은 특수 문자 때문에 API가 URL을 거부하고 있어 디버깅 중일 때
  • 사용 전에 정리해야 하는 사용자 제출 URL을 처리하고 있을 때
  • 여러 URL 세그먼트를 한 번에 배치 인코딩하거나 디코딩해야 할 때
  • 파라미터를 올바르게 인코딩해야 하는 리디렉션 또는 콜백 URL을 구성하고 있을 때

단계:

  1. 인코딩하거나 디코딩할 텍스트/URL을 입력하거나 붙여 넣으세요.
  2. 인코딩 또는 디코딩 모드를 선택하세요.
  3. 변환 버튼을 클릭하세요.
  4. 애플리케이션에서 사용할 결과를 복사하세요.

공식

인코딩: 안전하지 않은 문자 → % + 2자리 16진수 코드 ➡ 디코딩: %XX → 원래 문자

사용 사례

  • URL에 안전한 쿼리 문자열 만들기
  • API 요청 파라미터 처리
  • 인코딩된 URL 디버깅
  • URL 친화적인 슬러그와 경로 만들기

주요 이점

  • 타yping과 동시에 실시간 인코딩과 디코딩
  • URL 모드와 구성 요소 모드 모두 지원
  • 여러 문자열을 동시에 인코딩 또는 디코딩하는 일괄 모드
  • Unicode와 이모지를 포함한 모든 특수 문자 처리
  • 100% 브라우저 기반 — 서버로 데이터가 전송되지 않음
  • 인코딩이 입력을 중복하거나 잘라내지 않았는지 확인하는 시각적 문자 수

전문가 팁

  • URL에 포함하기 전에 항상 사용자 생성 URL 매개변수를 인코딩하세요
  • JavaScript에서 개별 쿼리 매개변수 값에 encodeURIComponent()를 사용하세요
  • 사용자에게 표시하기 전에 URL을 디코딩하여 가독성을 높이세요
  • 이중 인코딩에 주의: %25 뒤에 더 많은 16진수가 보이면 URL이 두 번 인코딩된 것일 수 있습니다
  • 쿼리 문자열을 작성할 때는 구성 요소 모드를, 전체 URL 경로나 전체 URL을 인코딩할 때는 URL 모드를 사용하세요

피해야 할 일반적인 실수

  • 이미 인코딩된 URL을 인코딩하여 이중 인코딩, %20이 %2520으로 변환
  • 잘못된 인코딩 컨텍스트 사용 — URL 모드와 구성 요소 모드가 동일한 입력에 대해 다른 출력 생성
  • +가 application/x-www-form-urlencoded 데이터에서만 공백을 나타내는 것을 잊음
  • 비ASCII 문자를 올바르게 처리하지 않음 — 퍼센트 인코딩 전에 항상 UTF-8 인코딩을 확인하세요

주요 용어 설명

퍼센트 인코딩: URL에서 문자를 인코딩하는 표준 메커니즘, 안전하지 않은 문자를 % 뒤에 두 자리 16진수 ASCII 코드로 대체
쿼리 문자열: URL의 ? 문자 뒤에 있는 부분, &로 구분된 키-값 쌍을 포함
예약 문자: :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, = — RFC 3986에 따라 URL 구문에서 특별한 의미를 가진 문자
구성 요소 모드 대 URL 모드: 구성 요소 모드는 더 많은 문자를 인코딩하고 개별 값용; URL 모드는 URL 구조를 보존하고 전체 경로용

관련 개념

  • 퍼센트 인코딩: 안전한 URL 전송을 위해 안전하지 않은 문자를 %와 두 자리 16진수 ASCII 코드로 바꾸는 메커니즘
  • 쿼리 문자열: ? 문자 뒤에 오는 URL의 일부로, & 문자로 구분된 키-값 쌍을 포함
  • 예약 문자: RFC 3986에 따라 URL 구문에서 특별한 의미를 갖는 :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, = 같은 문자
  • URL 안전 문자: URL에서 인코딩이 필요 없는 비예약 문자(문자, 숫자, -, _, ., ~)
  • encodeURIComponent vs. encodeURI: encodeURIComponent는 개별 값에 대해 문자, 숫자, _*-.~를 제외한 모든 것을 인코딩하고, encodeURI는 전체 URL에 대해 URL 구조 문자를 보존하는 JavaScript 함수

예시

'Hello World & Friends!' 인코딩 → 'Hello%20World%20%26%20Friends%21'. 'search%3Fq%3Dhello+world' 디코딩 → 'search?q=hello world'.

결과 해석 방법

인코더는 안전하지 않은 URL 문자(공백, &, ?, #, 비ASCII 등)를 각 문자가 %와 두 자리 16진수 코드가 되는 퍼센트 인코딩 형식으로 변환합니다. 디코더는 이 과정을 반대로 수행하여 원래 읽을 수 있는 텍스트를 복원합니다. 문자 수는 인코딩이 입력을 예기치 않게 중복하거나 잘라내지 않았는지 확인하는 데 도움이 됩니다. 컴포넌트 모드는 더 넓은 범위의 문자를 인코딩하며 개별 쿼리 파라미터 값을 인코딩하도록 설계되었습니다. URL 모드는 인코딩 대상이 더 엄격하며 전체 URL 경로 또는 전체 URL을 인코딩하도록 설계되었습니다. 쿼리 문자열을 만들 때는 컴포넌트 모드를, 전체 URL을 인코딩할 때는 URL 모드를 사용하세요. 배치 모드를 사용하면 여러 줄을 한 번에 인코딩하거나 디코딩할 수 있어 처리할 URL이나 파라미터 목록이 있을 때 유용합니다. 각 줄은 별도의 입력으로 처리되며 모든 결과가 함께 표시되어 쉽게 복사할 수 있습니다.

자주 묻는 질문

URL에 인코딩이 왜 필요한가요?
URL에는 특정 ASCII 문자만 사용할 수 있습니다. 공백, &, ?, #과 같은 문자와 비ASCII 문자는 인터넷에서 안전하게 전송되도록 인코딩(퍼센트 인코딩)해야 합니다.
퍼센트 인코딩이란 무엇인가요?
퍼센트 인코딩은 안전하지 않은 문자를 % 기호와 두 자리 16진수 코드로 바꿉니다. 예를 들어 공백은 %20이 되고 &는 %26이 됩니다.
URL 인코딩과 HTML 인코딩은 같은 것인가요?
아니요. URL 인코딩(퍼센트 인코딩)은 URL을 위한 것입니다. HTML 인코딩은 &를 나타내는 &amp;이나 <를 나타내는 &lt; 같은 엔티티를 사용합니다. 두 방식은 웹 개발에서 서로 다른 목적을 가집니다.
URL 모드와 컴포넌트 모드는 언제 사용해야 하나요?
단일 쿼리 파라미터 값(예: 검색어)을 인코딩할 때는 컴포넌트 모드를 사용하세요. 전체 URL 경로를 인코딩하거나 문자열 전체가 URL에 안전해야 할 때는 URL 모드를 사용하세요. 컴포넌트 모드는 값이 URL 구조 내부에 배치될 것이라고 가정하므로 더 많은 문자를 인코딩합니다.
'Hello World'를 인코딩하면 'Hello+World'가 아닌 'Hello%20World'가 나오는 이유는 무엇인가요?
URL 경로 세그먼트에서는 공백이 %20으로 인코딩됩니다. 공백에 대한 + 인코딩은 application/x-www-form-urlencoded 데이터(HTML 양식 제출)에서만 사용됩니다. 최신 모범 사례는 URL에서 일관되게 %20을 사용하는 것입니다. 계산기는 URL 인코딩에 %20을 사용합니다.
이모지나 악센트 문자 같은 비ASCII 문자도 인코딩할 수 있나요?
네. 비ASCII 문자는 먼저 UTF-8 바이트로 변환된 다음 각 바이트가 퍼센트 인코딩됩니다. 예를 들어 이모지 ☺(U+1F600)는 %F0%9F%98%80이 됩니다. é(U+00E9) 같은 악센트 문자는 %C3%A9가 됩니다. 이는 RFC 3986에 정의된 표준 방식입니다.
이것과 HTML 엔티티 인코딩의 차이점은 무엇인가요?
URL 인코딩(퍼센트 인코딩)은 URL을 위한 것으로 문자를 %XX 16진수 코드로 변환합니다. HTML 엔티티 인코딩은 &를 위한 &amp;나 €를 위한 &#8364; 같은 명명된 또는 숫자 엔티티로 문자를 변환합니다. 두 방식은 완전히 다른 목적을 가지며 상호 교환할 수 없습니다.
특수 문자를 포함해도 인코딩 없이 작동하는 URL이 있는 이유는 무엇인가요?
최신 브라우저는 해당 URL로 이동하거나 양식을 제출할 때 URL을 자동으로 인코딩합니다. 그러나 코드, API 호출, 서버 측 리디렉션에서 프로그래밍 방식으로 URL을 구성할 때는 서버가 대신 처리하지 않으므로 수동으로 인코딩해야 합니다.
이중 인코딩의 위험이 있나요?
네. 이미 인코딩된 URL을 인코딩하면 %20이 %2520이 되며 이는 잘못된 것입니다. 다시 인코딩하기 전에 입력이 이미 인코딩되었는지 항상 확인하세요. 이 계산기는 디코딩된 출력을 표시하므로 결과가 올바른지 확인할 수 있습니다.
JavaScript에서 인코딩된 URL을 어떻게 처리하나요?
개별 값을 디코딩하려면 decodeURIComponent()를, 인코딩하려면 encodeURIComponent()를 사용하세요. 전체 URL에는 URL 구조 문자(/, ?, # 등)를 보존하는 decodeURI()와 encodeURI()를 사용하세요. escape()나 unescape()는 더 이상 사용되지 않으며 Unicode를 올바르게 처리하지 못하므로 절대 사용하지 마세요.

더 많은 도구 살펴보기

전체 도구 라이브러리에서 엄선한 새로운 추천입니다.