문자열을 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.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 |