문자열을 URI로 넘겨받아 처리하고자 할 때 encoding이 필요함.
그렇지 않으면 지 맘대로 바뀌는 문자들이 있음.
예를 들어 + 는 공백으로 치환됨.



JavaScript에는 URI를 encoding 할 수 있는 2가지 global function이 있음.


encodeURI()
특수문자를 encode함. 다음의 문자를 제외: , / ? : @ & = + $ #
대응되는 decode함수: decodeURI()

encodeURIComponent()
특수문자를 encode함. 다음의 문자를 포함: , / ? : @ & = + $ #
대응되는 decode함수: decodeURIComponent()


ex) 아래는 각 함수실행시 변화되는 코드임
흰색 = 변하지 않는 부분
빨간색 = encodeURIComponent()에서 변하는 부분
하늘색 = encodeURI() 에서도 변하는 부분 (%20 = 공백)


// 원본
http://www.mydomain.com/test.php?name=Grape fruits&money=$3,000&email=gfs@domain.com&strength=+130

// encodeURI()
http://www.mydomain.com/test.php?name=Grape%20fruits&money=$3,000&email=gfs@domain.com&strength=+130

// encodeURIComponent()
http%3A%2F%2Fwww.mydomain.com%2Ftest.php%3Fname%3DGrape%20fruits%26money%3D%243%2C000%26email%3Dgfs%40domain.com%26strength%3D%2B130




참조
http://www.w3schools.com/jsref/jsref_encodeuri.asp
http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp




'JavaScript' 카테고리의 다른 글

[JavaScript] 다차원 배열 정렬 (multiple array sort)  (4) 2010.11.02
[JavaScript] MD5  (0) 2010.09.16
[JavaScript] 새창 조작  (0) 2010.03.11
[jQuery] ajax 간단 예제  (0) 2010.03.04
[jQuery] jQuery에서 outerHTML 가져오기  (0) 2010.03.02
Posted by bloodguy
,