utf-8 페이지에서 euc-kr로(또는 역으로) post전송시 charset 설정하기 - ie onlyHtml & script 2008/01/25 00:07
로빈아빠
본문
문제.
부동산써브의 홈페이지는 다국어 지원을 위해 기본 인코딩이 utf-8로 되어있다..
(물론 개중에는 아직 euc-kr로 되어있는 페이지도 간혹있기는 하다.)
그런데, 결제처리 과정에서 결제페이지로 전달된 한글이 깨져보이는 현상이 일어나고 있었다.
확인해 보니,
이것은 현재의 써브싸이트가 기본 encoding이 utf-8로 진행을 하면서, euc-kr로 되어있는 결제페이지로 데이타를 전송하다보니, 문자셋 차이로 인해 한글이 전송중 깨져서 일어나는 현상이었다.
해결.
해당부분의 에러는 일단, hidden필드를 두고, post전송할때 escape()를 적용해서 문제를 해결했다.
그러다 보니, form필드가 더 추가되어야 하는 부분들이 생기게 되었다.
(전송할필드(escape처리)와 고객에게 보여질필드)
이런문제를 근본적으로 해결해보려고, 여러군데를 찾다보니,
documenet에 charset을 설정하면 된다는 부분이 있었다. 폼전송전에
document.charset="euc-kr"로 설정을 해서 폼을 post로 전송을 해보니, 받는페이지(charset=euc-kr)에서
문자가 깨지는 현상을 막을수 있었다. 문제는 ie에서만 된다는것이다.
암튼, ie에서는 post전송전에 document.charset을 설정해주면 문자깨짐을 방지할수 있다.
ex)
<script>
function pay(frm){
document.charset="euc-kr";
}
</script>
<form name="ini" method="post" action="pay.asp" onSubmit="return pay(this)">
<input type="text" name="buyername1" size="20" value="테스트">
</form>
좀 불편하더라고, 인코딩이 서로다른 페이지에 대해서 작업을 할때는 한글에 대해서는 기본적으로 escape()/unescape()을 이용하는것이 좋겠다.
부동산써브의 홈페이지는 다국어 지원을 위해 기본 인코딩이 utf-8로 되어있다..
(물론 개중에는 아직 euc-kr로 되어있는 페이지도 간혹있기는 하다.)
그런데, 결제처리 과정에서 결제페이지로 전달된 한글이 깨져보이는 현상이 일어나고 있었다.
확인해 보니,
이것은 현재의 써브싸이트가 기본 encoding이 utf-8로 진행을 하면서, euc-kr로 되어있는 결제페이지로 데이타를 전송하다보니, 문자셋 차이로 인해 한글이 전송중 깨져서 일어나는 현상이었다.
해결.
해당부분의 에러는 일단, hidden필드를 두고, post전송할때 escape()를 적용해서 문제를 해결했다.
그러다 보니, form필드가 더 추가되어야 하는 부분들이 생기게 되었다.
(전송할필드(escape처리)와 고객에게 보여질필드)
이런문제를 근본적으로 해결해보려고, 여러군데를 찾다보니,
documenet에 charset을 설정하면 된다는 부분이 있었다. 폼전송전에
document.charset="euc-kr"로 설정을 해서 폼을 post로 전송을 해보니, 받는페이지(charset=euc-kr)에서
문자가 깨지는 현상을 막을수 있었다. 문제는 ie에서만 된다는것이다.
암튼, ie에서는 post전송전에 document.charset을 설정해주면 문자깨짐을 방지할수 있다.
ex)
<script>
function pay(frm){
document.charset="euc-kr";
}
</script>
<form name="ini" method="post" action="pay.asp" onSubmit="return pay(this)">
<input type="text" name="buyername1" size="20" value="테스트">
</form>
좀 불편하더라고, 인코딩이 서로다른 페이지에 대해서 작업을 할때는 한글에 대해서는 기본적으로 escape()/unescape()을 이용하는것이 좋겠다.
관련링크
댓글목록
등록된 댓글이 없습니다.