Develop
2013.04.23 16:22

URI 인코딩, URL 인코딩

조회 수 19822 추천 수 0 댓글 0
Atachment
첨부 '1'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

url01.jpg



URI 인코딩, URL 인코딩

과거 초기 CGI 단계에서는 한글문제 때문에 특히 DB연동을 하게 될때에는 큰 이슈꺼리중 하나였지만, WAS나 기타 프레임웍들이 많이 발전한 요즘에서는 생소한 이야기가 될 수도 있다.



1. 이런 문제를 접하게 되는 대표 CASE

 • GET 방식으로 웹페이지에서 파라미터를 전달할때에

 • AJAX 를 통해서 JavaScript <<--->> JSP(or ASP,PHP) 간에 파라미터를 전달할때에



2. 문제의 원인

 • GET 방식의 파라미터에서는 #, +, &, % 를 사용할 수가 없으며, 스페이스문자()의 경우에도 문제가 될수도 있다.

 • AJAX 의 경우 JavaScript 의 리터럴(literal) 문제 때문에 특수문자등을 보낼 수 없다던지 혹은 인코딩과 관련해서 한글  깨짐 문제가 생긴다.



3.1 일반적인 해결책 (URI 인코딩이란 것을 사용하면 된다)

 • Java의 경우는  java.net 패키지를 사용해서 URI인코딩을 손쉽게 할 수 있다.

URLEncoder.encode("피코맥스", "UTF-8")
URLDecoder.decode("%ED%94%BC%EC%BD%94%EB%A7%A5%EC%8A%A4", "UTF-8")



 • JavaScript 의 경우는 encodeURIComponent 혹은  encodeURI(일부특수문자 제외)라는 함수를 사용하면 된다.

encodeURIComponent("피코맥스")
decodeURIComponent("%ED%94%BC%EC%BD%94%EB%A7%A5%EC%8A%A4")



3.2 문제가 되는 문자만 인코딩처리하는 방법

대개의 경우는 위와 같은 방법으로 해결되지만, 몇몇 경우는 특수문자만을 인코딩하고 나머진 그대로 유지해야할 경우도 있다.

인코딩이 중복되어서 잘 안되는 케이스인데, 아래의 해당 문자만 replace 해서 파라미터를 전송하는 방법이다.


% => %25

# => %23

+ => %2B

& => %26

  => %20 (공백 문자)



3.2.1 위의 처리에 대한 구현 메소드

import org.apache.commons.lang.StringUtils;

public static synchronized String encodeURI(String s) {
    String[] findList = {"#", "+", "&", "%", " "};
    String[] replList = {"%23", "%2B", "%26", "%25", "%20"};
    return StringUtils.replaceEach(s, findList, replList);
}


[참고] http://meyerweb.com/eric/tools/dencoder/


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
681 Develop [c#] 간단한 IPC 통신 예제 hooni 2013.04.23 64558
680 Develop [c#] 간단한 소켓통신 예제.. hooni 2013.04.23 27590
679 Develop [c#] 비동기 통신 샘플 코드 ㅎㅎ file hooni 2013.04.23 24516
678 Develop [c#]업글 뉴 툴바 개인적으로 만든거.. (new) ㅋㅋ secret hooni 2013.04.23 7651
677 Develop [c#]뉴 툴바 개인적으로 만든거.. (new) secret hooni 2013.04.23 7724
676 Develop [c#]뉴 툴바 개인적으로 만든거.. (old) secret hooni 2013.04.23 4272
675 Develop 논문에 들어갈 툴바 테스트 해볼 것.. secret hooni 2013.04.23 8013
674 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
673 Develop [erp] SAP 모듈 요약 hooni 2013.04.23 16602
672 Develop [js] 양원님이 공유해 주신 유료(5$란다ㅋ) 자료 ㅋㅋ secret hooni 2013.04.23 7948
671 Develop [js] 동적(innerHTML)으로 자바스크립트 실행하기.. 2 file hooni 2013.04.23 19412
670 Develop [ios] Objective-C에서 SQLite 사용하기.. file hooni 2013.04.23 15618
669 Develop [js] 자바스크립트(Javascript) 코드를 동적으로 삽입하는 방법.. file hooni 2013.04.23 24077
668 Develop 밸런싱 로봇.. 최종.. (관련 논문도 첨부) ㅋㅋ file hooni 2013.04.23 24158
667 Develop 레고 마인드스톰 NXT 수도쿠, 큐브 소스코드.. 20 file hooni 2013.04.23 83100
666 Etc 아두이노 관련 정보.. hooni 2013.04.23 23005
Board Pagination Prev 1 ... 30 31 32 33 34 ... 74 Next
/ 74