다른 캐릭터셋으로 폼 전송하기
개요
홈페이지 작업을 하면 빠지지 않는게 사용자가 입력한 폼을 전송하는 겁니다. 그런데, 이 폼이 구성된 페이지의 캐릭터셋과 받는 페이지의 캐릭터셋이 다르면 입력한 글자가 깨지게 됩니다. 저도 이번에 타 시스템과 연동을 한 경험이 있는데요 우리가 작성한 페이지는 EUC-KR 이었고 검색을 수행하는 솔루션의 페이지는 UTF-8 이었습니다. 물론, 해당 솔루션을 변경할 수는 없는 노릇이었습니다. 이런 경우 사용할 수 있는 방법입니다.
방법
폼을 전송하기 전에 자바스크립트에서 다음을 수행합니다.
function beforeSubmit(f) {
document.charset = 'utf-8';
f.submit();
}
페이지의 캐릭터셋을 임시로 변경하는겁니다. 하지만, 아쉽게도 이 방법은 IE에서만 동작합니다.
Firefox 에 대해서는 다음과 같은 방법을 사용할 수 있습니다.
<form ... method="post" accept-charset="utf-8"> </form>
즉, 다음과 같이 쓰면 되겠네요.
<script type="text/javascript">
function beforeSubmit(f) {
document.charset = 'utf-8';
return true;
}
</script>
<form ... method="post" accept-charset="utf-8" onsubmit="return beforeSubmit(this);">
</form>
유용한 정보가 되었길 바랍니다.
