+자바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

+ Recent posts