Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript decodeURIComponent() 함수 – 인코딩된 URI를 디코딩하는 방법

JavaScript의 decodeURIComponent() 함수는 인코딩된 URI(Uniform Resource Identifier)를 나타내는 문자열 값을 매개변수로 받아, 이를 원래의 형태로 디코딩한 결과를 반환하는 내장 함수입니다.

이 함수는 encodeURIComponent()로 인코딩된 데이터를 다시 사람이 읽을 수 있는 상태로 복원할 때 주로 사용됩니다. URI에 포함된 특수문자나 한글·러시아어 등 비 ASCII 문자는 퍼센트 인코딩(%XX) 형태로 변환되는데, decodeURIComponent()는 이러한 문자열을 원래 문자로 되돌려 줍니다.

문법

기본적인 사용 문법은 다음과 같습니다.

decodeURIComponent(encodedURI);

매개변수: encodedURI – 디코딩할 인코딩된 URI 문자열입니다.
반환값: 디코딩된 결과를 담은 새로운 문자열을 반환합니다.

예제

아래 예제는 encodeURIComponent()로 인코딩한 URL을 decodeURIComponent()로 다시 복원하는 과정을 보여줍니다.

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var encodedData = encodeURIComponent('https://www.qries.com/?x=шеллы');
        document.write("Encoded Data: " + encodedData);
        document.write("<br>");
        var decodedData = decodeURIComponent(encodedData);
        document.write("Decoded Data: " + decodedData);
    </script>
</body>
</html>

실행 결과

Encoded Data: http%3A%2F%2Fwww.qries.com%2F%3Fx%3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B
Decoded Data: https://www.qries.com/?x=шеллы

위 결과에서 알 수 있듯이, 콜론(:), 슬래시(/), 물음표(?)와 같은 특수문자와 키릴 문자 'шеллы'가 모두 퍼센트 인코딩 형태로 변환되었다가, decodeURIComponent()를 통해 원래대로 복원되는 것을 확인할 수 있습니다.

주의 사항

decodeURIComponent()에 잘못된 형식의 인코딩 시퀀스(예: 불완전한 % 기호)가 전달되면 URIError 예외가 발생할 수 있습니다. 따라서 외부 입력값을 디코딩하기 전에는 반드시 유효성 검사를 수행하거나 try-catch 문으로 예외를 처리하는 것이 좋습니다.