Uniform Resource Identifier (URI) 형태로 텍스트 문자열을 인코딩 해주는 함수이다.
encodeURIComponent( "인코딩할 문자열" ) 의 형태로 사용하게 된다.
인코딩된 문자열은 decodeURIComponent에 의해 원래 문자열로 복원된다.
단, encodeURIComponent 함수는 모든 문자에 대해 인코딩하기 때문에 /폴더1/폴더2 와 같은 슬래시가 포함된 경로 문자열 같은 경우 웹서버에서 경로를 제대로 인식하지 못할 수도 있다는 점을 유의해야 한다. /(슬래시)를 살려둔채로 인코딩을 하고 싶다면, 슬래시 등 인터넷 주소 체계에서 자주 사용되는 문자는 제외하고 인코딩해주는 encodeURI 함수를 사용해야 한다.
참고로, encodeURIComponent 함수는 IE8 이상의 브라우저에서 모두 지원되고 있다.
참고로, encodeURIComponent 함수는 IE8 이상의 브라우저에서 모두 지원되고 있다.
var uriEncode = encodeURIComponent ("www.Not a URL.com"); var uriDecode = decodeURIComponent(uriEncode); document.write(uriEncode); document.write("<br/>"); document.write(uriDecode); // Output: // www.Not%20a%20URL.com // www.Not a URL.com
만약 RFC 3986을 좀더 엄격하게 준수하길 원한다면, 문자열들이 URI 한정 용도들에 정형화되어 있지 않더라도 다음을 통해 안전하게 사용할 수 있다.
function fixedEncodeURIComponent (str) { return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A"); }
참고할만한 링크
http://realmind.tistory.com/191