현재 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>





+ Recent posts