기술지원 문의

헤더값의 한글을 읽을수 없습니다.
이호준 / 2003-06-10 00:00

안녕하세요.

현재 resin으로 간단한 검색 프로그램을 작성중에 문제가 좀 생겨 질문을 드립니다. 순수하게 서블릿으로만 이루어져 있습니다.

클라이언트 서블릿에서
GET /Finder HTTP/1.1
Accept-Language: ko
Content-Type: text/html; charset=EUC_KR
Cache-Control: no-cache
SearchName: 가가가

이렇게 해더에 검색어 정보를 요청합니다.
받는 부분에서 
String tstr = new String(req.getHeader(\"SearchName\").getBytes(\"8859_1\"),\"8859_1\");
System.out.println(\"SearchName1 : \" + tstr);

String tstr1 = new String(req.getHeader(\"SearchName\").getBytes(\"8859_1\"),\"euc-kr\");
System.out.println(\"SearchName2 : \" + tstr1);

String tstr2 = new String(req.getHeader(\"SearchName\").getBytes(\"euc-kr\"),\"8859_1\");
System.out.println(\"SearchName3 : \" + tstr2);

        String tstr3 =  new String(req.getHeader(\"SearchName\").getBytes(\"euc-kr\"),\"euc-kr\"); 
System.out.println(\"SearchName4 : \" + tstr3);


이렇게 받습니다. 
그런데 영문은 잘 넘어 오는데요. 한글이 다 ????로 아옵니다.

톰켓에서는 잘되는데 레진에서는 왜안되는지요.. 알려 주셨으면 감사 하겠습니다.

수고 하십시요.

Re:헤더값의 한글을 읽을수 없습니다.
관리자 / 2003-06-11 00:00

보통 PrintWriter의 getWriter()를 호출하기전에  
response.setContentType(\"text/html;charset=euc-kr\");
이런식으로 사용하시죠.

테스트해보니 
response.setContentType(\"text/html\");
로 하시고 그냥 getHeader(\"SearchName\");를 
이용하면 한글이 잘되네요.

요건 좀 연구해봐야겠네요.


--이호준 님의 글 [2003-06-10 22:44:15]
>안녕하세요.

현재 resin으로 간단한 검색 프로그램을 작성중에 문제가 좀 생겨 질문을 드립니다. 순수하게 서블릿으로만 이루어져 있습니다.

클라이언트 서블릿에서
GET /Finder HTTP/1.1
Accept-Language: ko
Content-Type: text/html; charset=EUC_KR
Cache-Control: no-cache
SearchName: 가가가

이렇게 해더에 검색어 정보를 요청합니다.
받는 부분에서 
String tstr = new String(req.getHeader(\"SearchName\").getBytes(\"8859_1\"),\"8859_1\");
System.out.println(\"SearchName1 : \" + tstr);

String tstr1 = new String(req.getHeader(\"SearchName\").getBytes(\"8859_1\"),\"euc-kr\");
System.out.println(\"SearchName2 : \" + tstr1);

String tstr2 = new String(req.getHeader(\"SearchName\").getBytes(\"euc-kr\"),\"8859_1\");
System.out.println(\"SearchName3 : \" + tstr2);

        String tstr3 =  new String(req.getHeader(\"SearchName\").getBytes(\"euc-kr\"),\"euc-kr\"); 
System.out.println(\"SearchName4 : \" + tstr3);


이렇게 받습니다. 
그런데 영문은 잘 넘어 오는데요. 한글이 다 ????로 아옵니다.

톰켓에서는 잘되는데 레진에서는 왜안되는지요.. 알려 주셨으면 감사 하겠습니다.

수고 하십시요.