현재 FORM 인코딩은 'UTF-8' 이로 Submit 으로 외부로 파라미터를 전송하는데(서울시통합검색)
인코딩이 'EUC-KR' 이다.
Submit() 전송되는걸 보면 서울시 통합검색창에 한글이 깨져서 보인다..
구글링해서 <Form> 태그에 accept-charset="euc-kr" 속성을 넣어주면 된다고 해서 테스트를 해보니
정상적으로 파라미터가 넘어갔다.(테스트는 거의 항상 크롬에서 했다.)
한참있다가 IE 에서 하니 안먹는다.. 'IE' 가 규약을 잘 안지켜서 그렇다는데..
혹시몰라서, IE, 크롬, 파이어폭스, 오페라 다해봤는데.. IE만 한글이 깨진다..
또, 욜 - 구글링... 찾았다! 인터넷에 나온거 해보면 안되서, 조금 이리저리 수정해서 지금 적용된 <Script> 소스다.
<script type="text/javascript">
//IE 에서 accept-charset="euc-kr" 안먹음 해결
var eucKrEncodng = function() {
if( /MSIE/.test(navigator.userAgent) ) {
document.charset = 'euc-kr';
return true;
document.charset = 'utf-8';
}
};
</script>
위와같이 적용을 하면 한글이 모든 브라우저에서 깨지지는 않는다. 근데, 문제발생
IE에서 현재페이지 -> 서울시 통합검색을 하면 현재페이지에서 <Form action> 설정한 페이지로 이동을 해서 다시 현재페이지로 돌아오기 위해서 브라우저의 '뒤로가기'를 누르면 메뉴의 Text 부분이 모두 깨짐.
(해결방안 : 현재페이지에서 통합검색시 <Form Target="_blank"> 줘서 새창띄우기로 뒤로가기 방지)
<!-- 서울시 통합검색 -->
<form name="seoulSearch" action="http://search.seoul.go.kr/newsearch/newTotalSearch.jsp" method="post" accept-charset="euc-kr" onsubmit="eucKrEncodng();" target="_blank">
<input type="hidden" name="alias" value="arisu" />
<fieldset>
<legend>통합검색</legend>
<label for="text" class="skip"><img src="<c:url value="/resources/images/cyber/common/skip.gif"/>" alt="서울시 통합검색"/></label>
<input type="text" name="query" id="text" value="" />
<input type="image" src="<c:url value="/resources/images/cyber/common/search.gif"/>" alt="검색" />
</fieldset>
</form>
'공부 > JSP' 카테고리의 다른 글
JSP_[ ServletConfig 와 ServletContext 차이점 ] (0) | 2014.06.02 |
---|---|
JSP_[ EL 비교연산자 ] (0) | 2014.03.11 |
JSP_[ Servlet Filter 설명 및 사용방법 ] (0) | 2013.01.17 |
JSP_[파일 다운로드 JSP] (0) | 2012.11.19 |
JSP_[계층형 게시판 알고리즘(펌)] (0) | 2012.11.07 |