0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
설정
URL에서 안전한 사용을 위해 텍스트 문자열을 인코딩 및 디코딩합니다. 컴포넌트는 모든 예약된 문자를 인코딩하므로 쿼리 매개변수 값에 이상적입니다. 전체 URL은 URL 구조(스키마, 막대, 물음표)를 그대로 유지합니다. HTML 양식의 경우 +를 사용하세요(application/x-www-form-urlencoded).
작업
범위
공간
0

작동 방식

URL 인코딩(퍼센트 인코딩)은 주소에 그대로 나타날 수 없는 문자를 그 바이트 값을 담은 %XX 시퀀스로 바꿉니다. 예를 들어 공백은 %20이 됩니다.

"구성 요소" 범위는 예약 문자(= & / ? #)도 이스케이프합니다. 매개변수 값에 사용하세요. "전체 URL"은 주소 구조를 유지합니다. URL 전체에 사용하세요.

HTML 폼에서는 공백이 +로 인코딩됩니다(application/x-www-form-urlencoded). 그 외의 경우에는 RFC 3986 표준에 따라 %20을 사용합니다.

예시

hola mundo & máshola%20mundo%20%26%20m%C3%A1s"&"는 매개변수 구분자와 혼동되지 않도록 이스케이프됩니다(%26). "á"는 UTF-8로 인코딩됩니다(%C3%A1).
a=1&b=2a%3D1%26b%3D2
https://sitio.com/á b?x=1 2URL completa: https://sitio.com/%C3%A1%20b?x=1%202"전체 URL" 모드에서는 ://, /, ?가 유지되며, 주소를 깨뜨릴 만한 것만 이스케이프됩니다.

활용 사례

  • URL을 직접 만들 때 쿼리 매개변수를 안전하게 구성하기.
  • &, =, 공백, 악센트가 포함된 값을 GET 요청으로 보내기 전에 인코딩하기.
  • URL을 디코딩하여 각 매개변수가 어떤 값을 담고 있는지 읽기.
  • 폼 전송을 위해 application/x-www-form-urlencoded 본문을 준비하기.

자주 묻는 질문

"구성 요소"와 "전체 URL"의 차이는 무엇인가요?

"구성 요소"(encodeURIComponent)는 =, &, /, ?, #도 이스케이프합니다 — 개별 값에 사용합니다. "전체 URL"(encodeURI)은 이러한 구조 문자를 유지합니다 — URL 전체에 사용합니다.

공백에는 언제 +를 쓰고 언제 %20을 쓰나요?

+는 폼 본문(application/x-www-form-urlencoded)에만 해당합니다. URL의 나머지 부분에서 공백의 표준은 %20입니다.

왜 "á"는 하나의 %XX가 아니라 %C3%A1이 되나요?

UTF-8로 인코딩되기 때문입니다. 비 ASCII 문자는 여러 바이트를 차지하며, 각 바이트가 자체 %XX 시퀀스로 표현됩니다.

URL을 인코딩하면 안전해지나요?

아니요. 구문 수준에서 유효하게 만들 뿐입니다. 암호화가 아니며 내용을 전혀 보호하지 않습니다.