URL 인코드

URL 구성 요소를 인코딩하고 디코딩합니다

입력
출력

URL / 퍼센트 인코딩이란?

URL은 소수의 ASCII 문자만 포함할 수 있습니다. 그 외의 모든 것 — 공백, 악센트가 있는 문자, 이모지, `&`, `=`, `?`와 같은 예약 문자 — 는 `%` 다음에 두 개의 16진수 숫자가 오는 퍼센트 인코딩을 해야 합니다. 공백은 `%20`이 되고, `é`는 `%C3%A9`가 되며, 물음표는 `%3F`가 됩니다.

단일 조각(쿼리 매개변수 값, 경로 세그먼트)을 이스케이프할 때는 '구성 요소' 인코딩을 사용하세요 — JavaScript의 `encodeURIComponent`와 동등합니다. 전체 URL에 구조적 구분 기호가 이미 있는 경우 이를 보존하기 위해 '전체 URL' 인코딩을 사용하세요 — `encodeURI`와 동등합니다.

사용 사례

  • 쿼리 문자열 작성 — 사용자 입력을 퍼센트 인코딩하여 `?q=` 매개변수에 삽입합니다.
  • 서버 로그 검사 — 손상된 URL을 디코드하여 원래 경로를 읽습니다 (`/Users/%E4%B8%AD%E6%96%87/...`).
  • OAuth 리디렉션 디버깅 — `redirect_uri`를 붙여넣어 OAuth 콜백이 정확히 무엇으로 디코드되었는지 확인합니다.
  • curl 예제 읽기 — 튜토리얼에서 퍼센트 인코딩된 URL을 복사하고 디코드하여 요청을 이해합니다.

예시

입력결과
hello world & friendshello%20world%20%26%20friends
café/menu?id=123caf%C3%A9%2Fmenu%3Fid%3D123 (component) or caf%C3%A9/menu?id=123 (full URL)

자주 묻는 질문

encodeURI와 encodeURIComponent의 차이는 무엇인가요?

`encodeURI`는 URL 구조적 문자를 (`:`, `/`, `?`, `#`, `&`, `=`) 그대로 두고 전체 URL을 인코딩합니다. `encodeURIComponent`는 그것들까지 이스케이프하여 URL에 들어가는 단일 조각을 인코딩합니다.

비 ASCII 문자를 처리할 수 있나요?

네. ASCII 외의 문자는 UTF-8 바이트(1–4 바이트)로 인코딩되며, 각각 `%XX`로 표현됩니다.

디코딩할 때 `+`는 공백으로 해석되나요?

아니요. 이 도구는 표준 URL 디코딩을 사용하며, `+`는 변경되지 않습니다. `+`-공백 의미 규칙은 `application/x-www-form-urlencoded` 양식 데이터에 특정하며, 이 도구는 별도의 양식 디코드 모드가 없습니다.

인코딩 후 URL이 깨지는 이유는 무엇인가요?

구조적 문자를 인코딩했습니다 (`:`, `/`, `?`, `#`) 이들은 리터럴로 남아 있어야 했습니다. 이 도구는 항상 구성 요소 인코딩 (`encodeURIComponent`)을 수행하므로 이들을 이스케이프합니다 — 따라서 전체 URL이 아닌 개별 쿼리 값이나 경로 세그먼트만 인코딩하세요.

업로드되는 것이 있나요?

아니요 — 인코딩과 디코딩은 전적으로 브라우저에서 실행됩니다.