허니몬의 IT 이야기/프로그래머, '코드 엔지니어'
if ( keyword != null ) {
     String charset[] = {"euc-kr", "ksc5601", "iso-8859-1", "8859_1", "ascii"};
     
     for(int k=0; k<charset.length ; k++){
             for(int l=0 ; l<charset.length ; l++){
                     if(k==l){
                             continue;
                     }else{
                             System.out.println(charset[k]+" : "+charset[l]+" :"+new String(keyword.getBytes(charset[k]),charset[l])+"<br>");
                     }
             }
     }
   }

ㅡㅅ-);; charset 형만 알아내는 거지, 그거에 대한 반환타입이 없어서...
조건식에다가 쓸 수가 없잖아!!!

자바내에서는 받는 파라메타의 charset 이 무엇인지 알아내는 메소드는 없는 듯 합니다. ㅡㅅ-);;
위의 식은 받은 문자열(keyword)을 반복문을 돌려서 문자셋을 바꿔가면서 출력하는 코드입니다.

출력결과를 확인하고서 파라메터가 어떤 charset으로 들어오는지 확인하고서 거기에 맞춰서 처리를 해줘야 한다.
우리 프로젝트 처리를 진행하면서는 크게 쓸모는 없었다. 자바스크립트를 통해서 파라메터를 생성해서 받는 것은
ISO8895_1 타입으로 하는 걸 알고 있으니까, 특정 조건을 만족했을 때, 해당 파라메터를 인코딩하도록 만들어 처리했다.


선생님께 여쭈어 또다른 방법을 알아냈다. get 방식으로 파라메터를 전달하는 자바스크립트 방식일 경우에 유용하다.
예 : javascript:location.href="list.jsp?page=555&subpage=444  의 경우

          //searchform 폼에서 입력한 값이 있을 경우 넣어줄 것 불러오기
          if ((request.getMethod()).equalsIgnoreCase("get") && category != null && keyword != null ) {
              keyword = new String(keyword.getBytes("ISO8859_1"), "EUC_KR");
          }

request 의 method 방법을 알아내는 메소드(함수) getMethod() 를 이용해서 "get" 방식을 경우에 변환해주는 방법입니다.

또다른 방법은 <form method="post" action="">을 하나 만들어서 그 안에다가 <input type="hidden" name=""> 으로 해서  해서 form.submit() 방식으로 다음페이지에서 필요한 값들을 넘기는 방법이 있다.


AJAX 실행한 단계에서 다음 페이지에서는
equest.setCharacterEncoding("euc-kr"); 의 식으로 코딩을 지정해주면 글자가 깨진다는 점을 주의하라.