9. 도서관/__사. Network

utf-8 페이지에서 euc-kr로(또는 역으로) post전송시 charset 설정하기 - ie only

행복 금융 2008. 11. 27.
utf-8 페이지에서 euc-kr로(또는 역으로) post전송시 charset 설정하기 - ie only

어제 부터 꼬여있던 한글 엔코딩 문제...

나도 똑같은 문제 때문에 폼 태그로 넘긴걸 ICONV 로 해서 다시 넘기고 어쩌구의 과정을 해야 하나 생각 중이었는데 아침에 꾸사리 ~~ 몇번 먹고 나서 구글을 뒤져 보니 해결을 한 몇몇 사람이 보이고 있음..


내가 겪고 있는 문제는 이미 누군가가 해결을 해 놓았다. 나는 그 것만 찾으면 된다..


실로 간단해 보이기는 하나 요즘 같은 정보 과잉 공급에서는 찾는것 마져도 쉽지 않다.

확실히 전문적인 자료(?) 는  네이버 보다는 구글이 나은거 같다.

최근에 이사님 말씀 처럼


구글의 강점은 다른게 아니고 세상의 모든 정보를 가지고 있다는 것...


이라고 하는데, 확실히 모양은 좀 빠져도(Visual Design) 그걸 상쇄하고도 남는 정보가 있다.

구글에게는...


아래의 글은 나랑 같은 문제를 해결하신 분의 블로그에 있는 글이다..

나와 거의 똑같은 문제를 해결...


---------------------------------------------------

문제.
부동산써브의 홈페이지는 다국어 지원을 위해 기본 인코딩이 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()을 이용하는것이 좋겠다.

댓글

💲 추천 글