Contents

Develop
2013.04.23 16:22

URI 인코딩, URL 인코딩

Views 18848 Comment 0
Atachment
Attachment '1'
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

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
No. Category Subject Author Date Views
829 Develop OGNL(Object Graph Navigation Language) hooni 2013.04.23 15730
828 Develop OpenGL 강좌 사이트 모음 hooni 2013.04.23 9638
827 Develop OPT와 CAS에 대한 자료.. (교수님 메일로 보내드린 자료..) file hooni 2013.04.23 13925
826 Develop SVN 명령어 (SVN command) hooni 2014.02.28 12146
825 Develop SVN 초간단 사용하기 hooni 2014.02.28 7619
» Develop URI 인코딩, URL 인코딩 file hooni 2013.04.23 18848
823 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 1409
822 Develop XE Core 1.8.18 본문 작성시 태그(html) 사라지는 버그 file hooni 2016.04.21 871
821 Develop XML, JSON, BSON, MSGPACK 장,단점 비교 file hooni 2017.01.11 2246
820 Develop ZBar 라이브러리를 이용한 바코드 스캔 앱 개발하기 file hooni 2015.01.01 1629
819 Develop [ajax] 샘플 코드와 한글처리에 대한 간단한 설명 hooni 2013.04.23 6842
818 Develop [ajax] 이벤트 코드 생성기 작업중.. ㅋㅋ file hooni 2013.04.23 7118
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 71 Next
/ 71