본문 바로가기

Programming/JavaScript

[JavaScript] escape(), unescape(), encodeURI(), decodeURI()

escape() / unescape()

자바스크립트 함수 중에 escape()라는 함수가 있는데, 이는 ASCII 문자열을 URL 인코딩 문자열(ISO Latin-1 [ISO 8859-1])로 바꾸어주는 함수다.

unescape() 함수는 escape() 함수를 사용하여 인코딩된 문자를 원래대로 되돌려주는 역할을 한다.

encodeURI() / decodeURI()

escape()unescape() 함수는 사용법이 간단하지만, ASCII 외의 문자에는 동작하지 않는 문제점이 있다. encodeURI()decodeURI()라는 함수를 사용하면, ASCII 외의 문자도 인코딩/디코딩이 가능하다.

        URI 인코딩을 해야 하는 문자들

 분류  문자
 예약 문자  ; , / ? : @ & = + $
 인코딩하지 않는 문자  알파벳, 십진수 숫자, - _ . ! ~ * ' ( )
 스코어  #


encodeURIComponent() / decodeURIComponent()

이 외에도 URI 인코딩에 사용는 함수는 encodeURICOmponent()decodeURIComponent() 두 가지가 더 있다. 이들은 &, +, = 기호를 인코딩 해주기 때문에 Ajax 연산에서 사용된다.

예제

   var url = 'http://www.tistory.com/category/index.jsp?id=나&pass=너&group=우리';
   document.write(url + "\n");
   document.write(escape(url) + "\n");
   document.write(encodeURI(url) + "\n");
   document.write(encodeURIComponent(url) + "\n");