
decodeURIComponent(uriComponent) 함수는 URL 인코딩을 디코딩하는 데 사용되지만, 특정한 경우에만 작동하는 이유는 URL 인코딩이 두 번 적용된 경우에 디코딩이 제대로 이루어지지 않기 때문입니다.
예를 들어, "%3F%3F"는 "%3F"를 디코딩한 후에 다시 "%3F"를 디코딩하려고 시도하기 때문에 디코딩이 제대로 이루어지지 않습니다.
이러한 문제를 해결할 수 있는 방법은 URL 인코딩을 디코딩하기 전에 URL 인코딩을 해제하는 것입니다. 예를 들어, "%3F%3F"를 "%3F"로 디코딩한 후에 "%3F"를 "?"로 디코딩하는 것입니다.
또한, URL 인코딩을 디코딩하기 전에 URL 인코딩을 해제하는 함수인 decodeURIComponent() 대신에 URLSearchParams API를 사용할 수 있습니다. URLSearchParams API는 URL 인코딩을 디코딩하는 데 더 효율적이고 정확한 방법을 제공합니다.
예를 들어, "%3F%3F"를 디코딩하는 코드는 다음과 같습니다.
#hostingforum.kr
javascript
const uriComponent = "%3F%3F";
const decodedURIComponent = decodeURIComponent(uriComponent);
const urlSearchParams = new URLSearchParams(decodedURIComponent);
console.log(urlSearchParams.toString()); // ??
이 코드는 "%3F%3F"를 디코딩하고 "?"를 출력합니다.
2025-06-05 22:19