개인참고자료/자바(네트워크)

URL - URLEncoder를 이용한 문자열 변환

경진 2008. 7. 19. 23:40
URLEncoder를 이용한 문자열 변환

아스키 문자가 아닌 문자열들을 특수한 문자들로 변환하는 것을 인코딩(encoding)이라고 부른다.

운영체제마다 일부 문자를 인식하는 방법이 틀리기 때문에 아스키 문자가 아닌 문자열들은 전부 특수한 문자들로 변환해서 사용할 필요가 있다. HTML 폼에 값을 입력한 후 확인 버튼을 누르면 브라우저가 변환을 시켜준다.

그러나 URLConnection 클래스 등을 이용해서 URL 주소가 가리키는 내용을 읽어올 때에는 사용자 쿼리를 사용자가 직접 변환시켜서 지정해줘야 할 필요가 있을 때도 있다. 전달해야할 값에 공백이 있을 때가 대표적인 경우다. URL 주소는 중간에 공백이 들어가는 것을 허용하지 않기 때문이다.

아스키 코드가 아닌 문자열을 특수한 문자열로 변환하기

URLEncoder 클래스를 이용해서 아스키 코드가 아닌 문자열을 특수한 문자열로 변환하는 프로그램이다. URLEncoder 클래스를 사용하는 방법은 그다지 어렵지 않다. URLEncoder 클래스에 있는 정적(static) 메소드인 encode() 메소드에 변환할 문자열을 인자로 지정하면, 변환된 문자열이 반환되기 때문이다.

import java.net.*;           
           
public class URLEncoderTest {           
           
    public static void main(String[] args) {       
        if(args.length != 1){   
            System.out.println("사용법 : jvaa URLEncoderTest 인코딩할 문자열");
            System.exit(1);
        }   
        String encodeStr = URLEncoder.encode(args[0]);   
        System.out.println(args[0] + "===>" + encodeStr);   
    }       
}           

URLEncoder 클래스의 정적 메소드인 encode() 메소드에 외부로부터 전달받은 문자열을 인자로 지정했다. 그 결과 변환된 문자열이 반환되고, 출력함으로써 변환된 내용이 무엇인지 알 수 있다.

        String encodeStr = URLEncoder.encode(args[0]);   
        System.out.println(args[0] + "===>" + encodeStr);

URLEncoderTest 실행

컴파일 후 다음과 같이 실행한다 '사과'라는 문자열을 전달하자 변환된 값이 출력되는 것을 확인 할 수 있다.

실행 결과

실행 결과