본문 바로가기
프로그래밍/JavaScript

encodeURIComponent, encodeURI, escape 차이점은 뭘까??

by 원피스랜드 2020. 12. 23.
반응형

그때그때 상황에따라 쓰긴 하지만, 정확하게 알고 쓰면 좋겠다.

그래서 포스팅 함. 

 

* escape  ( unescape() )

 

escape('http://naver.com/한글');

결과 : "http%3A//naver.com/%uD55C%uAE00"

 

ASCII글자 그외의 글자는 모두 인코딩 한다.

 

-------------------------------------------

아스키 문자리스트 ( 69개 )

 

ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

1234567890

@*-_+./

-------------------------------------------

 

*encodeURI  ( decodeURI )

 

 

URI에 사용하는 일부 ":", ";", "/", "?" 등의 문자를 엔코드하지 않으므로, 

엔코딩이 필요하면 별도로 에스케입 시켜야 한다.

주소 문자를 엔코드하려면 encodeURIComponent를 사용하라.

 

encodeURI('http://naver.com/한글');

결과 : "http://naver.com/%ED%95%9C%EA%B8%80"

 

 

 

*encodeURIComponent  ( decodeURIComponent )

 

URI에 사용하는 일부 ":", ";", "/", "?" 등의 문자까지도 엔코드 한다.

encodeURIComponent 메서드는 모든 문자를 엔코드하므로 문자열이 /folder1/folder2/default.html와 같은 경로를 나타낼 경우 주의하라. 

웹 서버에 요청을 보낼 경우 슬래시 문자가 엔코드되므로 적합하지 않는다. 문자열에 URI 구성요소가 두개 이상 들어 있으면 encodeURI 메서드를 사용하라.

 

encodeURIComponent('http://naver.com/한글');

결과  : "http%3A%2F%2Fnaver.com%2F%ED%95%9C%EA%B8%80"

 

인코딩 예제를 이해하기 쉽도록 URL로 하였는데, 

보통  파라미터 넘겨줄때  할때 특수문자 한글등 때문에

나같은 경우는 encodeURIComponent 를 많이 쓴다.

반응형

댓글