파일 인코딩이 UTF-8인 코드에서 EUC-KR로 폼값 보내는 방법
보통 솔루션 연동을 하다보면 데이터를 주고 받는 과정에서 인코딩 방식에 대한 이슈가 종종 생겨납니다.
예를 들면 본인이 개발 중인 코드는 UTF-8인데 다른 코드와 연동하면서 EUC-KR과 같은 다른 인코딩 방식으로 데이터를 넘겨야 하는 상황이 일반적입니다.
이런 경우 파일 인코딩 방식 자체가 UTF-8이기 때문에 iconv와 같은 함수로 변환을 시킨다 하더라도 제대로 표시되지 않고 문제가 깨지게 됩니다.
이런 경우에 대응하기 위해서 form 태그 내에 인코딩에 대한 옵션을 부여할 수 있습니다.
<form name="myform" method="post" action="https://abc.com" accept-charset="euc-kr" onsubmit="document.charset='euc-kr';">
위 코드에서 accept-charset=”euc-kr”과 onsubmit=”document.charset=’euc-kr’;” 이 여기서 이야기하는 옵션입니다.
보통은 accept-charset 옵션만으로 서버에서 데이터를 처리할 인코딩 방식을 정의할 수 있지만 구버전 IE에서는 이를 인식하지 못합니다. 그래서 추가한 것이 onsubmit=”document.charset=’euc-kr’;” 부분입니다. 처리가 되지 않는 IE의 경우 onsubmit 이벤트를 통해 자바스크립트로 처리됩니다.
이 처리로 EUC-KR로 구성된 다른 서비스에 폼값을 깨지지 않고 보내줄 수 있습니다.