본문 바로가기

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

[javascript] decodeURI() 함수란?

by GenieIT* 2024. 11. 5.

728x90
728x90

 

1. decodeURI() 함수

  • JavaScript의 decodeURI() 함수는 encodeURI()로 인코딩된 URI 문자열을 다시 원래의 형태로 디코딩할 때 사용됩니다. 이 함수는 퍼센트(%)로 인코딩된 문자를 알아볼 수 있는 형태로 변환하여 URI를 해석할 수 있도록 합니다.
  • decodeURI() 함수는 encodeURI()가 인코딩한 문자를 대상으로만 디코딩합니다. 이 함수는 URI의 구조를 유지하기 위해 일부 특수 구분 문자를 그대로 남겨두며, %로 인코딩된 문자만 해석하여 원래의 텍스트로 변환합니다.

 

2. decodeURI() 함수 사용법

  • 구문: decodeURI(encodedURI)
  • 매개변수: encodedURI는 디코딩할 URI 문자열입니다.
  • 반환값: URI 내에서 퍼센트 인코딩된 문자가 원래 형태로 변환된 문자열을 반환합니다.

 

3. 활용 예제

const encodedURI = "https://example.com/search?query=hello%20world&lang=ko";
const decodedURI = decodeURI(encodedURI);

console.log(decodedURI);

 

 

4. decodeURI()와 decodeURIComponent() 함수의 차이점

  • decodeURI()는 URI의 전체 문자열을 디코딩할 때 사용하며, URI 구분 문자는 건드리지 않습니다. 반면, decodeURIComponent()모든 인코딩된 문자를 디코딩하기 때문에, URI의 특정 부분을 디코딩할 때 사용하기 적합합니다.
  • decodeURI(): 전체 URI 문자열을 디코딩하며, 구조를 유지하기 위해 URI 구분 문자는 디코딩하지 않습니다.
  • decodeURIComponent(): URI의 특정 부분을 디코딩할 때 사용하며, 모든 인코딩된 문자를 변환합니다.
const encodedComponent = "hello%20world%26lang%3Dko";
const decodedComponent = decodeURIComponent(encodedComponent);

console.log(decodedComponent);

 

 

5. 주의 사항

  • URI 전체가 인코딩된 경우 decodeURI()를 사용하여 디코딩하고, URI의 일부만 인코딩되었을 때는 decodeURIComponent()를 사용하는 것이 좋습니다.
  • decodeURI()로 디코딩할 때는 유효하지 않은 인코딩 형식이 포함되어 있으면 오류가 발생할 수 있습니다. 따라서 인코딩된 형식이 올바른지 확인하는 것이 중요합니다.

 

 

728x90