본문으로 바로가기

다른 캐릭터셋으로 폼 전송하기

By 양군, 2008-11-09

개요

홈페이지 작업을 하면 빠지지 않는게 사용자가 입력한 폼을 전송하는 겁니다. 그런데, 이 폼이 구성된 페이지의 캐릭터셋과 받는 페이지의 캐릭터셋이 다르면 입력한 글자가 깨지게 됩니다. 저도 이번에 타 시스템과 연동을 한 경험이 있는데요 우리가 작성한 페이지는 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>

유용한 정보가 되었길 바랍니다.

관련 포스트

댓글을 달아주세요.

OfficeFolders theme by Themocracy. Modified by Yangkun (It's me). Valid XHTML 1.0 Transitional 올바른 CSS입니다!