본문 바로가기
Web Programing!/JAVA / JSP

[JAVA] URLEncoder / URLDecoder

by 어설픈봉봉이 2011. 9. 6.
반응형
SMALL




URLEncoder / URLDecoder


기능 : 네트웍상으로 URL의 데이터가 전송될 때 byte단위로 자르는 것을 인코딩,
         조합하는 것을 디코딩이라고 하는데, 그 때에 인코딩과 디코딩 관련 메소드를 가진 클래스

 주요 메소드 
     - encode()
     - decode();

import java.net.*;
import java.io.*;

public class  NET3{
    public static void main(String[] args) {
          new NET3();
}

public NET3(){
  
   String str = "김치";
//String str = "abc";
//String enType  = "ISO-8859-1";  // 정식 영문타입으로 오류 발생하지 않는다. (영문만 지원)
//String enType = "ISO-8859000011111111";
// 구현되지 않은 타입으로 UnsupportedEncodingException 발생

String enType = "euc-kr"; // 정식 한글타입으로 오류 발생하지 않는다. (한글/영문 지원)
String str_result1 = null, str_result2=null;

// 1 인코딩

try{
   str_result1 = URLEncoder.encode(str, enType);
   pln("str_result1(인코딩) : "+str_result1);
}catch(UnsupportedEncodingException uee){
   pln("지원하지 않는 인코딩타입이다. ");
}

//김치 결과 :: str_result : %3F%3F
// 한글을 입력하고 표준 영문 코드타입을 설정하였기 때문에 글자가 깨진다.)
//abc 결과 :: str_result : abc


// 2. 디코딩

try{
   str_result2 = URLDecoder.decode(str_result1, enType);
   pln("str_result2(디코딩) : "+str_result2);
}catch(UnsupportedEncodingException uee){
   pln("지원하지 않는 디코딩타입이다. ");
}

// 김치 결과  / enType = "euc-kr" / enType = "ISO-8859-1"
// str_result1(인코딩) : %B1%E8%C4%A1    // %3F%3F
// str_result2(디코딩) : 김치                     

 public void pln(String str){
    System.out.println(str);
 }
}

반응형