URL을 인코딩하고 디코딩하는 방법

· 3 분 소요

URL에서 공백이 있어야 할 곳에 %20이 보이거나 악센트 문자가 있어야 할 곳에 %C3%A9가 보인 적이 있다면 URL 인코딩을 만난 것입니다. 이는 웹의 기본 구성 요소이며, 이를 이해하면 깨진 링크, API 문제 및 양식 제출을 디버깅하는 데 도움이 됩니다.

URL 인코딩이 하는 일

URL에는 안전한 문자의 제한된 집합만 포함될 수 있습니다: 글자(A-Z, a-z), 숫자(0-9) 및 일부 특수 문자(-, _, ., ~). 그 외 모든 것 — 공백, 악센트, 이모지, &, =, #, ?와 같은 기호 — 은 안전한 형식으로 변환되어야 합니다.

URL 인코딩(percent-encoding이라고도 함)은 안전하지 않은 문자를 % 뒤에 16진수 바이트 값으로 대체합니다:

문자 인코딩됨
공백 %20
& %26
= %3D
# %23
? %3F
/ %2F
@ %40

URL 인코딩이 필요할 때

인코딩 및 디코딩하는 방법

  1. 인코딩 또는 디코딩 선택 — 방향을 선택하세요. 쿼리 매개변수에는 encodeURIComponent를, 전체 URL에는 encodeURI를 사용하세요.
  2. 입력 붙여넣기 — 텍스트나 URL을 입력하세요. 결과가 즉시 업데이트됩니다.
  3. 출력 복사 — 결과를 코드, API 요청 또는 브라우저에서 사용하세요.

자주 묻는 질문

encodeURI와 encodeURIComponent의 차이점은 무엇입니까?

encodeURI는 URL 구조에서 유효한 문자(슬래시, 콜론, 물음표)를 보존합니다. encodeURIComponent는 글자, 숫자 및 일부 안전한 문자를 제외한 모든 것을 인코딩합니다. 쿼리 매개변수 값에는 encodeURIComponent를, 전체 URL에는 encodeURI를 사용하세요.

왜 공백이 %20 또는 +가 됩니까?

URL 인코딩에서 공백은 %20이 됩니다. 양식 데이터(application/x-www-form-urlencoded)에서 공백은 +가 됩니다. 둘 다 컨텍스트에서 유효하지만 %20이 URL의 보편적 표준입니다.

URL을 수동으로 인코딩해야 합니까?

대부분의 경우 언어나 프레임워크가 자동으로 인코딩을 처리합니다. 수동 인코딩은 URL을 손으로 구성하거나, API 요청을 디버깅하거나, 특수 문자가 포함된 쿼리 문자열로 작업할 때 유용합니다.

내 데이터가 서버로 전송됩니까?

아니요. 모든 인코딩 및 디코딩은 브라우저에서 수행됩니다.