착한 것들 > 착한 스크립트 > 폼 관련

다른 문자셋 페이지로 한글깨짐 없이 폼전송 euc-kr > utf-8

※ 내용 업데이트와 홈페이지 관리 다시 시작하겠습니다. ^^;
서로 다른 문자셋을 사용하는 페이지간 폼전송 예제입니다.
euc-kr 인 페이지에서 utf-8 로 단순 폼 전송 할 경우
한글 데이터는 깨집니다. 아래 소스는 이것을 해결한 예제입니다.

이런 방법으로 처리가 가능 하다는 것을 알려주는 최대한 간단한 샘플입니다. ^^;

관련글 부분에 이 방법을 알게된 원본글 링크를 걸었습니다.
예제
검색1, 검색2 버튼을 각각 눌러보며 테스트 해보세요~ (엔터치지 마세용)
MSN 검색 :
검색1 : MSN 검색에 그대로 폼전송 합니다. 현재 이 문서는 euc-kr 입니다. MSN은 utf-8 기반입니다. 검색어가 한글일 경우 이상한 검색이 됩니다.
검색2 : 검색어를 euc-kr 에서 utf-8 로 바꾸어 폼전송 합니다. MSN 에 한글 검색도 잘 됩니다!!
소스
<script type="text/javascript">
<!--
	function gogogo(){
		var frm = document.form1;
		frm.submit();
	}

	function gogogo2(){
		var frm = document.form1;
		frm.acceptCharset = 'utf-8';
		if(document.all)document.charset = 'utf-8'; // 익스플로러에서는 이렇게 해줘야 됩니다. (버그성 이라고 하네여)
		frm.submit();

		// 폼 전송을 새창으로 했을경우 기존 문자셋으로 되돌려 놓기 위한 처리입니다.
		frm.acceptCharset = 'euc-kr';
		if(document.all)document.charset = 'euc-kr';
	}
//-->
</script>

검색1, 검색2 버튼을 각각 눌러보며 테스트 해보세요~ (엔터치지 마세용)<br>

<form name="form1" method="get" accept-charset="" action="http://www.bing.com/search" target="_blank">
MSN 검색 : <input type="text" name="q" value="한글">
<input type="button" value=" 검색1" onclick="gogogo()">
<input type="button" value=" 검색2 " onclick="gogogo2()">
</form>

<b>검색1 :</b> MSN 검색에 그대로 폼전송 합니다. 현재 이 문서는 euc-kr 입니다. MSN은 utf-8 기반입니다. 검색어가 한글일 경우 이상한 검색이 됩니다.<br>
<b>검색2 :</b> 검색어를 euc-kr 에서 utf-8 로 바꾸어 폼전송 합니다. MSN 에 한글 검색도 잘 됩니다!!
☞ 달팽이홈2 등록일 : 2009-01-13