일상다반사/Talking

POST/GET 전송시 아주 간단하게 인코딩을 변경하기.

Figo Kim 2008. 11. 12. 21:06
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

오늘 일하면서 아주 사소한 문제에 부딧쳤다. 전송을 하는 쪽은 euc-kr 이요, 받는 쪽은 utf-8인 것이다.

물론 평상시 같으면 그냥 받는 쪽에서 request.setCharacterEncoding("UTF-8"); 쉽게 처리할 수 있었겠지만,

스트럿츠2 프레임웍을 쓰는 관계로, 쉽게 생각할 수가 없었다. 더군다나, 톰켓 기본 인코딩이 UTF-8으로 되어 있는 거였다.

어떻게 할까 이런 저런 고민을 하다가,

물론 그 고민 중에는 자바스크립트로 문자열을 utf-8으로 변경하는 함수도 써보고, urlencoding 도 써보고, escape 도 써봤다. 소용이 없었다. 요청을 받는 서버에서는 변환된 문자열을 그 자체로 받아들이는 것이었다.

거의 포기할 때쯤, 아주 쉬운 방법을 찾았다.

바로 다음과 같은 방법이다.

document.charset = "utf-8";

이거 한방으로 완전히 해결이 됬다. ㅎㅎㅎㅎ

물론 이 방법은 DOM 객체의 어느 곳에서나 사용할 수 있다.

<html>
<head>
<link rel="stylesheet" type="text/css" id="style1"
href="try_dom_link.css" />
</head>
<body>
<script type="text/javascript">
x=document.getElementById("style1");
x.charset="ISO-8859-1";
document.write("Charset=" + x.charset);
</script>
</body>
</html>