+자바URL인코딩+
String URL = "www.myhome.com/";
String subURL = "한글값";
String thirdURL = "/index";
sbuURL = URLEncoder.encode(subURL, "UTF-8");
URL = URL + subURL + thirdURL;
// URL 처리
URL 인코딩을 통해 '한글값' 만을 인코딩 해준다.
여기서 주의할점은 특수문자인 . _ - * 4가지는 변환에서 제외된다는 점이다. 따라서 인코딩될 값이 저 문자들이 포함될 경우 인코딩 후에도 특수문자들만은 변환되지 안은채 반영되므로 URL 보낼때 엉뚱한 주소로 찾아가는 경우가 있다.
(경험상 / 특수문자도 변환되지 않는걸로 안다.)
+자바스크립트URL인코딩+
자바스크립트에서 지원하는 url encode / url decode 함수는 3가지가 있다.
encodeURI() / decodeURI()
최소한의 문자만 인코딩한다. 예를들어 ;!@#$ 와 같은 문자는 인코딩 하지 않는다.
encodeURI('ABC가나다!@#htt://abc.com');
ABC%EA%B0%80%EB%82%98%EB%8B%A4!@#htt://abc.com
**encodeURI() 는 ~!@#$&*()=:/,;?+' 을 인코딩하지 않는다.
encodeURIComponent() / decodeURIComponent()
encodeURI() 가 특수문자를 인코딩 하지 않기 때문에 http:// 와 같은 주소전체를 인코딩할때 사용하는 url encode 함수이다
encodeURIComponent('ABC가나다!@#htt://abc.com');
ABC%EA%B0%80%EB%82%98%EB%8B%A4!%40%23htt%3A%2F%2Fabc.com
**encodeURIComponent() 는 ~!*()' 을 인코딩 하지 않는다.
escape() / unescape()
한글은 유니코드(%u0000) 형태로 변환한다.
encodeURI() 와 encodeURIComponent() 의 중간정도의 치환 범위를 갖는다.
escape('ABC가나다!@#htt://abc.com');
ABC%uAC00%uB098%uB2E4%21@%23htt%3A//abc.com
escape() 는 @*/+ 을 인코딩 하지 않는다.
'knowledge' 카테고리의 다른 글
Callback (0) | 2014.09.12 |
---|---|
함수의 아규먼트와 파라미터의 차이 프로그래밍 이야기 2012/11/10 13:47 (0) | 2014.06.02 |
http / https (0) | 2014.04.08 |
COOKIE , Session (0) | 2014.04.08 |
XML (0) | 2014.04.08 |