본문 바로가기

프로그래밍/[javascript] 자바스크립트

[javascript] encodeURI() 함수란?

by GenieIT* 2024. 11. 6.

728x90
728x90

 

1. encodeURI() 함수

  • JavaScript의 encodeURI() 함수는 URI(Uniform Resource Identifier)에서 특수 문자를 인코딩하는 데 사용됩니다. 이 함수는 URL의 일부로 사용할 수 있는 안전한 형식으로 문자열을 변환합니다.
  • 웹에서 데이터를 전송할 때 URI 내의 특정 문자들이 문제를 일으킬 수 있기 때문에 인코딩이 필요합니다.

 

2. encodeURI() 함수 사용

  • 구문: encodeURI(URI)
  • 매개변수: 인코딩할 URI 문자열입니다.
  • 반환값: URI 내에서 특수 문자가 인코딩된 문자열을 반환합니다.

 

3. 인코딩 되는 문자와 예외 문자

  • encodeURI()는 URI 전체를 인코딩할 때 사용되며, URI의 특수 구분 문자(:, /, ;, &, #, ?)는 인코딩하지 않습니다. 이는 URL의 구조를 유지하기 위함입니다.
  • 인코딩되지 않는 예외 문자: :, /, ;, &, #, ?

 

4. 활용 예제

const uri = "https://example.com/search?query=hello world&lang=ko";
const encodedURI = encodeURI(uri);

console.log(encodedURI);

 

 

5. encodeURI()와 encodeURIComponent() 함수의 차이점

  • encodeURI()와 유사하게 encodeURIComponent() 함수도 인코딩을 수행합니다. 하지만 URI의 일부만 인코딩하려는 경우 encodeURIComponent()를 사용하는 것이 더 적절합니다. 이 함수는 모든 특수 문자를 인코딩하므로 URI의 구조를 그대로 유지하면서 특정 부분만 인코딩할 때 유용합니다.
  • encodeURI(): URI 전체를 인코딩하며, 구조를 유지하는 특수 문자는 제외합니다.
  • encodeURIComponent(): URI의 특정 부분을 인코딩할 때 사용하며, 모든 특수 문자를 인코딩합니다.
const baseURL = "https://example.com/search";
const query = "hello world";
const encodedURL = baseURL + "?query=" + encodeURIComponent(query);

console.log(encodedURL);

 

 

6. 주의 사항

  • encodeURI()는 전체 URI 문자열에 사용하며, URL의 특정 부분만 인코딩할 때는 사용하지 않는 것이 좋습니다.
  • URL 전체를 인코딩해야 할 때 encodeURI()를 사용하고, URL의 일부를 인코딩해야 할 때는 encodeURIComponent()를 사용하여 구조가 깨지지 않도록 해야 합니다.

 

 

728x90