jsp 서버간 통신에서 한글URL 오류 좀 해결좀 부탁드립니다.
도도
영어 URL은 되는데 한글ULR을해서 페이지 요청하면 한글 URL이 깨짐니다.
예를 들어 http://google/search?=naver 이건되는데 http://google/search?=네이버 이렇게 하면 네이버가 ???로 깨집니다.
%@ page contentType=text/html; charset=euc-kr %
%@ page import = org.apache.commons.httpclient.HttpClient %
%@ page import = org.apache.commons.httpclient.methods.GetMethod %
%@ page import = org.apache.commons.httpclient.HttpStatus %
%
request.setCharacterEncoding(utf-8);
String url = request.getParameter(Query);
url = new String(url .getBytes(8859_1), UTF-8);
HttpClient client = new HttpClient();
GetMethod method = new GetMethod(url.toString());
try {
int statusCode = client.executeMethod(method);
out.clearBuffer();
response.reset();
response.setStatus(statusCode);
if (statusCode == HttpStatus.SC_OK) {
String result = method.getResponseBodyAsString();
response.setContentType(text/html; charset=euc-kr);
out.println(result);
}
} finally {
if (method != null) method.releaseConnection();
}
%
-
중국드립
URLEncoding java.net.URLEncoding이거 import하면 쓸수 있는거죠?
-
탄성
아니면 POST 방식으로 주고받아야겠죠^^
-
마루한
깨지는 현상이 정상이나 오류라고 볼수는 없습니다. 셋팅에 따라서 깨질수도 있고 정상적으로 보일수도
있기때문입니다. 가장 정확한 방법은 찬님이 말씀하신것 처럼 URLEncoding 과 URLDECoding을 사용하시는
방법이 가장 무난합니다. -
콩알눈
우선
http://google/search?=네이버
요런 방식으로 쓰는것 자체가 문제가 있습니다. URL의 형식을 보면.. 항상 인코딩해서 써야 한다고 되어 있습니다. ㅎ ;;
해결법은 .. 잘 모르겠습니다. ㅎㅎ ;; 제가 웹쪽은 잘 몰라서. ㅎ -
하림
쉽게 예기 해서 get방식이 깨지신다는건데....
request.setCharacterEncoding(\EUC_KR\); 첨에 써주고 하면 안깨지던데요.
그리고 문자열을 엔코딩해서 처리하는 방법도 있고 톰켓에서 web.xml에서 처리하는 방법도 있고요.
전 JSP하면서 엔코딩에 신경써본적이 없는데 왜 이런현상이 나오는지 그게 더 궁금하네요.